スマホ対応に便利!CSSのbox-sizingの使い方【初心者向け】
初心者向けにCSSで書くbox-sizingの使い方について解説しています。今流行りのレスポンシブデザインにも活用できます。簡単に表示させることができるので、ぜひ自分でも書いてみましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
CSSで書くbox-sizingの使い方について解説する記事です。
Webデザインをする上で、今や必須となったスマホ画面への対応にも便利です。
box-sizingを利用すると、paddingやborderに依存せずに画面レイアウトを調整できるので、ぜひ覚えておきましょう。
目次
【動画の解説はこちら!】
田島メンター!!HTML要素のpaddingを設定したら、ボックス(表示領域)全体の大きさも変わってしまって……ボックスの大きさをそのままにするにはどうしたらいいですか~?
そういうときはbox-sizingがとても便利だよ。
box-sizingは何をするんですか?
最初に指定したwidthとheightの範囲内でpaddingやborderを設定できる機能なんだ。まずは普段、paddingを設定したときにボックスの大きさがどうなっているかを確認してみよう。
box-sizingとは
box-sizingは、HTML要素の表示領域(ボックス)の算出方法として利用されるプロパティです。
また、padding(余白を調整する属性)やborder(境界線の太さを調整する属性)といったプロパティがあります。
paddingやborderプロパティを使用して余白や境界線の太さを設定すると、widthやheightの表示領域にpaddingとborderのサイズが加わります。
そのため、paddingやborderの値によってボックス全体の大きさが変わってしまうのです。
これは、paddingとborderのサイズがwidthやheightの表示領域に含まれず、別のものとして扱われているためです。
box-sizingプロパティで設定を変えることによって、ボックスの大きさにpaddingやborderを含めるよう設定することができます。
これにより、余白や境界線の太さに影響されずにボックスの大きさを決めることが可能になります。
そうそう、こんな感じで大きさが変わっちゃうんです。
これは、paddingやborderのサイズがwidthやheightの表示領域の上に加わってしまっているからなんだね。
そこでbox-sizingを使うんですね。実際にはどう書くんですか?
box-sizingの書き方
box-sizingは以下のように記述します。
box-sizing: 値;
値の部分には以下のどちらかを入力します。
- content-box:padding,borderを高さや幅に含めません(初期値)
- border-box:padding,borderを高さや幅に含めます
実際にbox-sizingを書いてみよう
ここでは、box-sizingプロパティを実際に利用し、HTML要素の表示領域(ボックス)を設定します。
以下のhtmlにbox-sizingプロパティを使用します。
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset=”utf-8″ />
<link rel=”stylesheet” href=”sample.css” type=”text/css”>
</head>
<body>
<p class=”content1″>content-box(初期値)の場合、paddingとborderはwidthとheightに含まれない</p>
<p class=”content2″>border-boxの場合、paddingとborderがwidthとheightに含まれる</p>
</body>
</html>
全く同じwidthとheightを設定した領域(幅400px、高さ150px)を2つ並べ、1つ目のボックスには初期値であるcontent-boxを、2つ目のボックスにはborder-boxを設定します。
CSS
p.content1 {
width: 400px; height: 150px; background-color:#f0f8ff;
border: 30px solid #4169e1; padding: 10px;
box-sizing: content-box;
}
p.content2 {
width: 400px; height: 150px; background-color:#f0f8ff;
border: 30px solid #4169e1; padding: 10px;
box-sizing: border-box;
}
画面では以下のように表示されます。
上のボックスではpaddingとborderに設定した分のサイズが元の幅と高さに追加されています。
下のボックスではwidthとheightの範囲内でpaddingとborderが生成されています。
まとめ
以上、CSSで書くbox-sizingの使い方について解説しました。
content-boxとborder-boxを使い分け、詳細なHTML要素の表示領域(ボックス)を設定できることを理解しておきましょう。
ぜひスマホとPCで共有する画面を作るときの参考にしてみてください。
執筆してくれたメンター
メンターSS
文系・未経験でIT企業に就職して、9年目。 環境構築から開発・設計・テストまで何でも屋さんをやっていました。 テックアカデミーではJavaコースを担当しています。 |
今回は、box-sizingのふたつの値を比較してみたよ。
content-boxは普段の状態、ボックスが大きくなっちゃうやつですね。
そうだね。そこで値をborder-boxにすることで領域内でpaddingやborderを設定することができるようになるんだ。
これで領域の設定がやりやすくなりそうですね。ありがとうございました!
[お知らせ]TechAcademyでは初心者でもオリジナルWebサイトを公開できるWebデザインオンラインブートキャンプを開催しています。