これにより、流動的/レスポンシブなデザインでの作業が大幅に簡素化されます。いくつかの複雑なレイアウトや、一定の間隔が必要な場合は、を使用しないとほぼ不可能ですborder-box
。
私は最近これを使用しました(FTW!):
*, *:after, *:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
かなり大きなサイトで、実際に多くの問題を解決したことがわかりました。IE7 のサポートが必要な場合、私のアプローチは、そのブラウザーにサイトの固定幅バージョンを提供し、必要な場合にのみこのポリフィルを使用することでした.*
私は本当に欠点を見つけていません.50%幅の2つの列を指定し、追加padding
して、それがうまくいくことを知っているのは安心です. 標準に依存する可能性がある場所ではbox-model
、特定の要素についていつでも標準に戻すことができます。
ブートストラップ固有
特に Bootstrap の使用に関しては、いくつかの問題が発生する可能性があります。テストすることをお勧めします。余談ですが、上記の CSS をBootstrap ホームページに追加しても問題はありませんでした。
Bootstrap 2.x に組み込まれているメイン グリッド システムはfloat
とmargin
を使用するため、 を変更しbox-model
ても影響はありません (padding
列に直接追加できるようになるだけです)。
Bootstrap 3はモバイル ファーストのアプローチに移行しています (そして IE7 のサポートは完全に廃止されています)。それには以下が含まれます:
[A] 新しいシングル グリッド システム (引き続き を使用) は、ピクセル幅とマージンの代わりに.row
、パーセンテージ幅、パディングを使用します。box-sizing: border-box
したがって、彼らは明らかにこのアプローチを採用するメリットを信じています。
* 私の考えでは、私はすでに Modernizr の HTML shim に依存しているため、ブラウザーはレイアウトに関して既に JS に依存しています。幅を変数として格納する SASS を使用すると、これは非常にスムーズに機能します。とはいえ、特定のプロジェクトで古い IE の使用率が高い場合、このアプローチは適切ではなくなります。