icon
icon

スマホ対応に便利!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に依存せずに画面レイアウトを調整できるので、ぜひ覚えておきましょう。

 

目次

1時間でできる無料体験!

 

【動画の解説はこちら!】

大石ゆかり

田島メンター!!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] Webデザインで副業する学習方法を動画で公開中

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が生成されています。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

以上、CSSで書くbox-sizingの使い方について解説しました。

content-boxとborder-boxを使い分け、詳細なHTML要素の表示領域(ボックス)を設定できることを理解しておきましょう。

ぜひスマホとPCで共有する画面を作るときの参考にしてみてください。

 

執筆してくれたメンター

メンターSS

文系・未経験でIT企業に就職して、9年目。

環境構築から開発・設計・テストまで何でも屋さんをやっていました。

テックアカデミーではJavaコースを担当しています。

 

田島悠介

今回は、box-sizingのふたつの値を比較してみたよ。

大石ゆかり

content-boxは普段の状態、ボックスが大きくなっちゃうやつですね。

田島悠介

そうだね。そこで値をborder-boxにすることで領域内でpaddingやborderを設定することができるようになるんだ。

大石ゆかり

これで領域の設定がやりやすくなりそうですね。ありがとうございました!

 

[お知らせ]TechAcademyでは初心者でもオリジナルWebサイトを公開できるWebデザインオンラインブートキャンプを開催しています。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する