VIDEO LESSON

CSSのbox-sizingの使い方:指定値・実例・効かない原因とブラウザー互換性の解説動画

再生時間 7:32動画を別のタブで開く ↗
動画の字幕・文字起こしを読む

再生中の字幕を濃い黒で表示し、一番上に追従します。字幕の行を選ぶと、その位置から再生できます。

  1. 0:00こんにちは。
  2. 0:00シーエスエス、リファレンス解説です。
  3. 0:03今回のテーマは、ボックスサイジングです。
  4. 0:06これは、ウィドスやハイトで指定したサイズに、内側の余白であるパディングと、
  5. 0:12枠線であるボーダーを含めるかどうかを決めるプロパティです。
  6. 0:17幅を指定したはずなのに、余白や枠線の分だけ箱が大きくなってしまった、という経験はありませんか。
  7. 0:24その原因の多くが、この設定にあります。
  8. 0:27この動画では、二つの値の違いを数字で比べながら、なぜボーダーボックスが寸法を管理しやすいのか、
  9. 0:33実例と注意点まで順番に解説します。
  10. 0:38幅と高さの両方に効く設定なので、最初に押さえておくと、後のレイアウト学習がぐっと楽になります。
  11. 0:45まず基本の書き方です。
  12. 0:47セレクターを書いたら、ボックスサイジングと書き、コロンのあとに値、最後にセミコロンを付けます。
  13. 0:53スライドの例では、ボーダーボックスを指定しています。
  14. 0:57これで、この要素ではウィドスやハイトの指定が、パディングとボーダーを含んだ外側の大きさとして扱われます。
  15. 1:04エイチティーエムエル側では、クラス、デモを持つ要素が対象になるので、セレクターとクラス名が一致しているかを最初に確認してください。
  16. 1:13まずはこの一行を書いて、箱の大きさの測り方がどう変わるか確かめてみましょう。
  17. 1:18次に、指定できる値を確認します。
  18. 1:20主な値は二つです。
  19. 1:22コンテンツボックスは、ウィドスやハイトの対象が内容の領域だけになります。
  20. 1:27パディングとボーダーは、その外側に足し算されるので、箱全体は指定値より大きくなります。
  21. 1:34一方、ボーダーボックスは、パディングとボーダーを含めた領域が対象になります。
  22. 1:39指定した幅の中に余白と枠線が収まるので、箱全体の大きさは指定値どおりになります。
  23. 1:45名前の違いではなく、サイズをどこまで含めて測るか、という測り方の違いとして覚えてください。
  24. 1:52高さについても考え方はまったく同じで、ハイトにパディングとボーダーを含めるかどうかが切り替わります。
  25. 1:59初期値と継承について整理します。
  26. 2:02ボックスサイジングの初期値は、コンテンツボックスです。
  27. 2:06つまり、何も指定しなければ、余白と枠線は指定した幅の外側に足されます。
  28. 2:11そして、このプロパティは親から通常は継承しません。
  29. 2:15親にボーダーボックスを指定しても、子要素に自動では伝わらないので注意が必要です。
  30. 2:21また、親の計算値を使うインヘリット、初期値に戻すイニシャルなども書けますが、
  31. 2:26普段は二つの値を直接書くことがほとんどです。
  32. 2:30継承しない点が、後で紹介する全体への適用方法につながります。
  33. 2:35記事の比較を、数字で確かめます。
  34. 2:38横幅を十四レム、パディングを二レム、枠線の太さを八ピクセルとした箱を考えます。
  35. 2:44ボーダーボックスなら、箱全体の幅は十四レムのままです。
  36. 2:48余白と枠線は、その内側に収まります。
  37. 2:51一方、コンテンツボックスでは、内容の十四レムに、左右のパディング合計四レムと、
  38. 2:58左右の枠線合計十六ピクセルが外側へ足され、全体は十八レムと十六ピクセルになります。
  39. 3:05同じウィドスでも、全体の大きさがこれだけ違うのです。
  40. 3:09数字で追うと、違いがはっきりします。
  41. 3:12逆に言えば、ボーダーボックスでは内容を表示できる幅が、余白と枠線の分だけ狭くなります。
  42. 3:19その点も合わせてイメージしておきましょう。
  43. 3:22では、なぜボーダーボックスが便利なのでしょうか。
  44. 3:26理由は、指定した幅がそのまま見た目の幅になるからです。
  45. 3:31たとえば幅五十パーセントの箱を二つ横に並べたいとき、コンテンツボックスではパディングの分だけ合計が百パーセントを超え、
  46. 3:36並びが崩れることがあります。
  47. 3:42ボーダーボックスなら、余白は幅の内側に収まるので、合計は百パーセントのまま保てます。
  48. 3:49幅百パーセントにパディングを付けても、親からはみ出しにくいのも同じ理由です。
  49. 3:55レイアウトの計算が単純になるのが、最大の利点です。
  50. 3:59フォームの入力欄でも、幅いっぱいにパディング付きで表示できるので、親からはみ出す心配が減ります。
  51. 4:06ここからは記事の実例です。
  52. 4:08エイチティーエムエルでは、ステージという親の中に、デモというクラスを付けた箱を置きます。
  53. 4:14その中には、ハロー、シーエスエスから始まる文章を入れ、文章を増やして折り返しも確認できるようにしています。
  54. 4:22頭の部分では、スタイルシートをリンクで読み込むのを忘れないでください。
  55. 4:27親と子の入れ子構造が、そのまま後のシーエスエスの対象になります。
  56. 4:31比べたいのはボックスサイジングだけなので、文章などの土台は固定したままにします。
  57. 4:37ステージという親を用意することで、子の大きさの変化が、親との対比で分かりやすくなります。
  58. 4:43土台のシーエスエスです。
  59. 4:44ステージは最大幅を三十レムにし、デモの箱には濃い緑の枠線と薄い緑の背景を用意します。
  60. 4:51さらに幅を十四レム、パディングを二レム、枠線を八ピクセルにして、違いが大きく出るようにします。
  61. 4:58最後の行でボックスサイジングをボーダーボックスにすると、箱全体は十四レムに保たれます。
  62. 5:04次に最後の行だけをコンテンツボックスへ置き換えると、余白と枠線が外側に足され、
  63. 5:08箱が一回り大きくなります。
  64. 5:12この一行の違いが実例の比較ポイントです。
  65. 5:15保存して再読み込みし、箱の外側の大きさに注目してください。
  66. 5:19活用場面を考えてみましょう。
  67. 5:21実務でよく使われるのが、すべての要素にボーダーボックスを指定する書き方です。
  68. 5:27アスタリスクで全要素を選び、最初にまとめて指定しておくと、ページ内のどの箱も同じ測り方で扱えます。
  69. 5:33ボックスサイジングは継承しないため、要素ごとに書くより、全体へ一度に適用する方が漏れがありません。
  70. 5:40カードの幅をそろえたり、入力欄にパディングを付けても幅が変わらないようにしたりと、
  71. 5:44部品づくりの土台として活躍します。
  72. 5:49新しいページを作るときの最初の数行として覚えておきましょう。
  73. 5:53ライブラリーやフレームワークの多くも、この全体指定を前提に設計されています。
  74. 5:58効かないと感じたときの注意点です。
  75. 6:01まず最も間違えやすいのは、外側の余白であるマージンの扱いです。
  76. 6:05マージンは、ボーダーボックスでも幅には含まれません。
  77. 6:09含まれるのはパディングとボーダーまでで、マージンは常に対象外です。
  78. 6:14次に、一部の要素だけ指定が漏れていると、箱ごとに測り方がそろわず、大きさがばらつきます。
  79. 6:21そのうえで、開発者ツールで順番に調べます。
  80. 6:24ネットワークでスタイルシートの取得、エレメンツでクラスの一致、スタイルズで上書きの有無、
  81. 6:29コンピューテッドで最終的な値を確認してください。
  82. 6:35固定幅とパディングを組み合わせたときは、全体の寸法も数値で確かめましょう。
  83. 6:40最後に、三百二十ピクセル程度の狭い画面幅でも、内容がはみ出さずに読めるかを確認しましょう。
  84. 6:47最後に互換性とまとめです。
  85. 6:49記事が参照するエムディーエヌの記録では、プロパティ本体はクローム十以降、
  86. 6:55エッジ十二以降、ファイアフォックス二十九以降、サファリ五点一以降などで対応が示され、
  87. 7:01二つの値自体はさらに古い版から使えるため、安心して使えるプロパティです。
  88. 7:07まとめます。
  89. 7:08ボックスサイジングは、ウィドスやハイトにパディングとボーダーを含めるかを決める設定で、
  90. 7:13初期値はコンテンツボックス、継承はしませんでした。
  91. 7:18練習として、二つの値の違いを数字で説明し、値を一つずつだけ変えて結果を比べてみてください。
  92. 7:25関連するウィドスやハイトも学ぶと、サイズの制御がより正確になります。
  93. 7:30お疲れさまでした。
日本語字幕をダウンロード(WebVTT)

この動画で学べること

box-sizingの役割と主な指定値を解説。同じwidthでも、border-boxの方が外側の幅を指定値に保ちます。初期値・継承・ブラウザー互換性、効かないときの確認方法も整理します。

解説記事・サンプルコードを読む:CSSのbox-sizingの使い方:指定値・実例・効かない原因とブラウザー互換性 →