スマホ対応に便利!CSSのbox-sizingの使い方【初心者向け】

初心者向けにCSSで書くbox-sizingの使い方について解説しています。今流行りのレスポンシブデザインにも活用できます。簡単に表示させることができるので、ぜひ自分でも書いてみましょう。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

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の値によってボックス全体の大きさが変わってしまうのです。

bsi_p_1

これは、paddingとborderのサイズがwidthやheightの表示領域に含まれず、別のものとして扱われているためです。

box-sizingプロパティで設定を変えることによって、ボックスの大きさにpaddingやborderを含めるよう設定することができます。

これにより、余白や境界線の太さに影響されずにボックスの大きさを決めることが可能になります。

大石ゆかり

そうそう、こんな感じで大きさが変わっちゃうんです。

田島悠介

これは、paddingやborderのサイズがwidthやheightの表示領域の上に加わってしまっているからなんだね。

大石ゆかり

そこでbox-sizingを使うんですね。実際にはどう書くんですか?

 

[PR] HTML/CSSで挫折しない学習方法を動画で公開中

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;
}

画面では以下のように表示されます。

bsi_p_2

上のボックスでは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デザインオンラインブートキャンプを開催しています。