ウェブデザイン初心者の頃は、スマホサイトなんて無かったので PX(ピクセル)でのサイト作成全盛期の CSS 2 時代。
横並びボックスの border や padding の幅を計算に入れるのを忘れて、しょっちゅうカラム落ちしてイラついていたのを覚えています(笑)
ときは流れ、CSS 3 時代に突入した今、border や padding 幅の計算は要らなくなりました。「box-sizing」というプロパティを使えば、border も padding も含めてボックスの幅という風に設定できるようになったからです。
今回は「box-sizing を使えば、border や padding を内側配置にするのでカラム落ちしないんです」のメモです。
box-sizing の特徴
box-sizing を使わなかった場合(デフォルト)
このように border や padding はボックスの外側へ追加幅扱いとして配置されるので、border(padding) 分の幅が増えてしまいますからカラム落ちしてしまいます。
box-sizing を使った場合
しかし、box-sizing を適用した場合は、このように border (padding)を含んだうえでのボックス幅という扱いになり、カラム落ちしなくなります。
box-sizing の使い方
ボックス要素やインライン要素に対して「box-sizing: border-box;」と記述すれば OK。
使用例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* ボックス要素 */ .box { width: 24%; border: #ddd 3px solid; box-sizing: border-box; } /* インライン要素 */ li { width: 200px; margin-right: 10px; padding: 10px; border: #ccc 1px solid; box-sizing: border-box; } |
など。border や padding とセットで用います。
すべての子要素に一括で効かせようとして、親要素に box-sizing を記述しても、子要素には適用されませんのでご注意です。横着はできません。
以上 box-sizing の使い方でした。