6日でできる 新HTML&CSS入門|Bootstrapのスペーシング

余白を整えるだけで、Webページはぐっと読みやすくなる。
Bootstrapのスペーシングclassを使って、margin、padding、gapをすばやく調整しよう。

Webページの見やすさは、文字の大きさや色だけで決まるわけではありません。見出しと本文の間、ボックスとボックスの間、ボタン同士の間隔、画面の端とコンテンツの距離など、余白の取り方によってページ全体の印象は大きく変わります。

余白が少なすぎると、要素が詰まって見えて読みにくくなります。反対に、余白が多すぎると、情報同士のつながりが分かりにくくなることがあります。Webデザインでは、必要な場所に適切な余白を作ることがとても大切です。

Bootstrapでは、この余白調整を簡単に行うために、スペーシングユーティリティというclassが用意されています。m-3、p-3、mt-5、mb-4、px-5、py-2、gap-2のようなclassをHTMLに追加するだけで、margin、padding、要素間のgapを調整できます。

通常のCSSでは、margin-topやpadding-leftなどを自分で書いて余白を調整します。Bootstrapでは、あらかじめ決められたclassを使うことで、CSSを追加しなくても統一感のある余白を指定できます。特に、Bootstrapでボタン、カード、フォーム、グリッドを作るときは、スペーシングclassを使いこなすことで、見た目を整えやすくなります。

この記事では、Bootstrapのスペーシングの基本として、marginとpaddingの違い、mとpの読み方、t、b、s、e、x、yの方向指定、0から5までのサイズ指定、mx-autoによる中央寄せ、gapによる要素間隔の調整を、サンプルHTMLを使いながら分かりやすく解説します。

スペーシングとは何か

スペーシングとは、要素のまわりや内側に作る余白のことです。Webページでは、余白を適切に使うことで、情報のまとまりが分かりやすくなり、読みやすいレイアウトになります。

Bootstrapのスペーシングでは、主にmarginとpaddingを調整します。

種類意味使う場面
margin要素の外側の余白要素と要素の間隔を空けたいとき
padding要素の内側の余白ボックス内の文字と枠の間隔を空けたいとき
gap子要素同士の間隔グリッドやflexの中で要素間を空けたいとき

たとえば、見出しの下に本文との間隔を作りたい場合はmarginを使います。ボックスの中の文字が端に寄りすぎている場合はpaddingを使います。ボタンを縦に並べて、その間を空けたい場合はgapを使うと便利です。

Bootstrapでは、これらの余白をclassだけで指定できます。CSSファイルを直接編集しなくても、HTMLのclassを変えるだけで余白を調整できる点が大きな特徴です。

図1:margin、padding、gapで余白の場所が変わる

この図から分かること

marginは要素の外側に作る余白、paddingは要素の内側に作る余白です。gapは、グリッドやflexの子要素同士の間隔を調整するときに使います。どの余白を調整したいのかを見分けることで、Bootstrapのスペーシングclassを正しく使いやすくなります。

Bootstrapのスペーシングユーティリティ

Bootstrapのスペーシングユーティリティとは、余白を簡単に指定するためのclassです。mやpなどの短いclass名を使って、marginやpaddingを調整します。

classの先頭意味対応するCSS
mmargin外側の余白
ppadding内側の余白

たとえば、m-3は全方向にmarginを付けるclassです。p-3は全方向にpaddingを付けるclassです。

<div class="m-3">外側に余白があります</div>
<div class="p-3">内側に余白があります</div>

mはmargin、pはpaddingと覚えると分かりやすいです。Bootstrapでは、このmやpに方向とサイズを組み合わせて余白を指定します。

方向を指定するサフィックス

Bootstrapでは、余白をどの方向に付けるかをclass名の中で指定できます。方向を表す部分をサフィックスとして考えると分かりやすくなります。

サフィックス意味方向
ttop
bbottom
sstart左。日本語や英語のような左から右へ読む言語では左側
eend右。日本語や英語のような左から右へ読む言語では右側
xstartとend左右
ytopとbottom上下
なし全方向上下左右すべて

たとえば、mt-5は上方向のmargin、mb-3は下方向のmargin、px-5は左右方向のpadding、py-2は上下方向のpaddingです。

<div class="mt-5">上に大きめの余白があります</div>
<div class="px-4">左右の内側に余白があります</div>

sとeは、startとendの意味です。左から右へ読む言語では、sが左、eが右になります。Bootstrapでは、国際化を考慮してleftやrightではなくstartやendという考え方を使います。

サイズ指定の考え方

Bootstrapのスペーシングclassでは、余白の大きさを0から5の数字で指定します。数字が大きいほど余白も大きくなります。

サイズ指定内容
0余白なし
10.25rem
20.5rem
31rem
41.5rem
53rem
automarginで自動指定。中央寄せなどに使う

よく使うのは、2、3、4あたりです。少しだけ余白を付けたい場合は2、標準的な余白なら3、広めに空けたい場合は4や5を使うと考えると分かりやすいです。

class意味
m-3全方向にmargin 1rem
p-3全方向にpadding 1rem
mt-5上方向にmargin 3rem
mb-4下方向にmargin 1.5rem
px-5左右にpadding 3rem
py-2上下にpadding 0.5rem

Bootstrapのスペーシングclassは、細かな数値を直接書かなくても、統一された余白を使える点が便利です。ページ全体で余白の大きさがそろいやすくなります。

図2:スペーシングclassはプロパティ、方向、サイズで読む

この図から分かること

Bootstrapのスペーシングclassは、mやp、方向、サイズの組み合わせでできています。mt-5なら、mはmargin、tはtop、5は大きめの余白を表します。px-3なら、pはpadding、xは左右、3は標準的な余白です。class名を分解して読むと、どの場所にどれくらいの余白が付くのか理解しやすくなります。

marginとpaddingの使い分け

marginとpaddingはどちらも余白ですが、使う場所が違います。Webページを整えるときは、この違いを意識することが大切です。

調整したいこと使うもの
要素と要素の間を空けたいmargin見出しと本文の間、ボックス同士の間
ボックス内の文字を端から離したいpadding色付きボックス内の文字、カード内の文章
ボタン同士の間隔を空けたいgap、margin縦並びのボタン、横並びのボタン
中央寄せしたいmargin automx-auto

たとえば、見出しの下に余白を作る場合はmb-4を使えます。色付きのボックス内で文字が端に寄りすぎている場合はp-3を使います。

<h2 class="mb-4">お知らせ</h2>
<div class="bg-light p-3">内側に余白があるボックスです</div>

marginは外側、paddingは内側と覚えると、余白の調整がしやすくなります。

BootstrapスペーシングのサンプルHTML

ここでは、CDN経由でBootstrapを読み込み、いろいろなスペーシングclassを使ったボックスとボタンを表示します。

ファイル名: lesson56_1.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Bootstrap スペーシング サンプル</title>
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
  <div class="container py-4">
    <h2 class="mb-4">スペーシングの例</h2>

    <div class="bg-primary text-white p-3 mb-3">
      青いボックス:p-3で全方向の内側余白、mb-3で下方向の外側余白
    </div>

    <div class="bg-success text-white px-5 py-2 mb-4">
      緑のボックス:px-5で左右の内側余白、py-2で上下の内側余白、mb-4で下方向の外側余白
    </div>

    <div class="bg-warning text-dark mt-5 mb-2 ps-4">
      黄色のボックス:mt-5で上方向の外側余白、mb-2で下方向の外側余白、ps-4で左側の内側余白
    </div>

    <div class="d-grid gap-2 mt-5">
      <button class="btn btn-info">ボタンA gapで間隔あり</button>
      <button class="btn btn-info">ボタンB gapで間隔あり</button>
    </div>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

ブラウザの表示例

ブラウザで表示すると、containerの中に見出しと3つの色付きボックスが表示されます。

青いボックスは、p-3によって上下左右の内側に余白ができます。さらにmb-3によって、次のボックスとの間に下方向の余白ができます。

緑のボックスは、px-5によって左右の内側余白が広くなり、py-2によって上下の内側余白が少し付いています。mb-4によって、下方向にやや広めの余白が作られます。

黄色のボックスは、mt-5によって上方向に大きな余白が付き、ps-4によって左側の内側に余白ができます。最後に、d-gridとgap-2を使ったボタンが縦に並び、ボタン同士の間に適度な間隔ができます。

サンプルHTMLで使ったclassの意味

サンプルHTMLでは、スペーシング以外にも背景色や文字色のclassを組み合わせています。

class意味
containerコンテンツを中央寄せの読みやすい幅にする
py-4上下にpadding 1.5remを付ける
mb-4下にmargin 1.5remを付ける
bg-primary青系の背景色にする
bg-success緑系の背景色にする
bg-warning黄色系の背景色にする
text-white文字色を白にする
text-dark文字色を濃い色にする
p-3全方向にpadding 1remを付ける
mb-3下にmargin 1remを付ける
px-5左右にpadding 3remを付ける
py-2上下にpadding 0.5remを付ける
mt-5上にmargin 3remを付ける
mb-2下にmargin 0.5remを付ける
ps-4左側にpadding 1.5remを付ける
d-gridグリッド表示にする
gap-2子要素同士の間隔を0.5remにする

このように、Bootstrapでは複数のclassを組み合わせて見た目を整えます。背景色、文字色、余白、配置などをclassで指定できるため、CSSを少なくしてレイアウトを作れます。

p-3とmb-3の違い

サンプルの青いボックスには、p-3とmb-3が指定されています。

<div class="bg-primary text-white p-3 mb-3">

p-3はpaddingです。ボックスの内側に余白を作るため、文字がボックスの端にくっつかず、読みやすくなります。

mb-3はmargin-bottomです。ボックスの外側、下方向に余白を作るため、次の要素との間隔が空きます。

class種類余白が付く場所
p-3paddingボックスの内側全方向
mb-3marginボックスの外側下方向

同じ余白でも、内側なのか外側なのかで見た目が変わります。ボックスの中を広げたいならpadding、要素同士を離したいならmarginを使います。

pxとpyで左右・上下をまとめて指定する

px-5やpy-2は、左右または上下のpaddingをまとめて指定するclassです。

<div class="bg-success text-white px-5 py-2 mb-4">

px-5は、左と右の内側余白を広く取ります。py-2は、上と下の内側余白を少し取ります。左右を広めに、上下を控えめにしたいときに便利です。

class意味
px-5左右にpadding 3rem
py-2上下にpadding 0.5rem
mx-3左右にmargin 1rem
my-4上下にmargin 1.5rem

xは左右、yは上下と覚えると分かりやすいです。ボタン、カード、見出し、セクションなど、左右や上下だけをまとめて調整したい場面でよく使います。

図3:p、m、x、y、gapを組み合わせて余白を整える

この図から分かること

Bootstrapのスペーシングclassを使うと、内側余白、外側余白、上下左右の余白、要素同士の間隔を簡単に調整できます。p-3は全方向の内側余白、mb-3は下方向の外側余白、px-5は左右の内側余白、gap-2は子要素同士の間隔を表します。class名を読むことで、どの余白が設定されているのか分かります。

mtとmbで上下の余白を調整する

mtはmargin-top、mbはmargin-bottomを表します。上下方向の余白は、見出しやボックスの間隔を整えるときによく使います。

<div class="mt-5 mb-2">
  上に大きめ、下に小さめの余白があります
</div>
class意味
mt-1上に小さなmargin
mt-3上に標準的なmargin
mt-5上に大きなmargin
mb-2下に小さめのmargin
mb-4下にやや大きめのmargin

たとえば、セクションの開始位置を少し下げたいときはmt-5を使えます。見出しの下に本文との間隔を作りたいときはmb-3やmb-4を使うと自然です。

psとpeで左右の内側余白を調整する

psはpadding-start、peはpadding-endを表します。左から右へ読む言語では、psは左側、peは右側になります。

<div class="ps-4">
  左側に内側余白があります
</div>
class意味
ps-4start側にpadding 1.5rem
pe-4end側にpadding 1.5rem
ms-3start側にmargin 1rem
me-3end側にmargin 1rem

従来のCSSではleftやrightを使うことが多いですが、Bootstrapではstartやendという考え方を使います。これにより、言語の表示方向に対応しやすくなります。

日本語や英語のように左から右へ読むページでは、startは左、endは右と考えると理解しやすいです。

mx-autoで中央寄せする

mx-autoは、左右のmarginをautoにするclassです。要素を中央寄せしたいときに使います。

<div class="mx-auto" style="width: 300px;">
  中央寄せのボックス
</div>

mxは左右、autoは自動です。左右のmarginをautoにすることで、幅が指定された要素を中央に配置できます。

class意味
mx-auto左右marginをautoにする
ms-autostart側のmarginをautoにする
me-autoend側のmarginをautoにする

mx-autoを使う場合は、中央寄せしたい要素に幅が必要になることがあります。幅が画面いっぱいの要素では、中央寄せしても見た目が変わらない場合があります。

gapで子要素同士の間隔を調整する

gapは、グリッドやflexの子要素同士の間隔を調整するclassです。サンプルでは、d-gridとgap-2を組み合わせて、2つのボタンの間隔を空けています。

<div class="d-grid gap-2">
  <button class="btn btn-info">ボタンA</button>
  <button class="btn btn-info">ボタンB</button>
</div>
class役割
d-grid親要素をグリッド表示にする
gap-2子要素同士に0.5remの間隔を作る
gap-3子要素同士に1remの間隔を作る
gap-4子要素同士に1.5remの間隔を作る

ボタン同士の間隔を空けるために、それぞれのボタンにmb-2を付ける方法もあります。しかし、親要素にgapを指定すると、子要素同士の間隔をまとめて管理できるため、コードが分かりやすくなります。

よく使うスペーシングclass

Bootstrapでよく使うスペーシングclassを整理しておきます。

class効果
m-3全方向にmargin 1rem
p-3全方向にpadding 1rem
mt-5上にmargin 3rem
mb-3下にmargin 1rem
mb-4下にmargin 1.5rem
pt-2上にpadding 0.5rem
pb-2下にpadding 0.5rem
px-5左右にpadding 3rem
py-2上下にpadding 0.5rem
ps-4start側にpadding 1.5rem
mx-auto左右marginをautoにする
gap-4子要素同士の間隔を1.5remにする

最初はすべてを暗記する必要はありません。mは外側、pは内側、tは上、bは下、xは左右、yは上下、数字は余白の大きさ、というルールを理解しておけば、class名を見ただけで意味を予想できるようになります。

スペーシングclassでよくある失敗

Bootstrapのスペーシングclassは便利ですが、使い方を間違えると意図した余白にならないことがあります。

よくある失敗原因対策
余白が外側に付いてほしいのに内側に付くmarginではなくpaddingを使っているmとpの違いを確認する
ボックス内の文字が端に寄るpaddingを指定していないp-3やpx-4を使う
要素同士がくっついて見えるmarginやgapが不足しているmb-3やgap-2を使う
中央寄せされないmx-autoだけで幅を指定していないwidthやBootstrapの幅classを確認する
余白が大きすぎるサイズ5などを使いすぎている2や3に下げて調整する
スマホで余白が広すぎる画面幅に対して余白が大きいレスポンシブ用classや小さめの余白を検討する

余白は多ければよいわけではありません。読みやすさとまとまりを意識して、必要な場所に必要な分だけ設定することが大切です。

Bootstrapスペーシングを使うときの考え方

Bootstrapのスペーシングを使うときは、まず「どこに余白を作りたいのか」を考えます。要素の外側を空けたいならmargin、要素の内側を広げたいならpadding、子要素同士の間を空けたいならgapです。

次に、方向を決めます。上だけならt、下だけならb、左右ならx、上下ならy、全方向なら方向指定なしです。最後に、余白の大きさを0から5の数字で決めます。

考える順番
何の余白かmarginかpaddingか
どの方向か上、下、左右、上下、全方向
どれくらいか0から5、またはauto
classにするmt-5、p-3、px-4、gap-2など

たとえば、見出しの下に標準的な余白を作りたいならmb-3、ボックスの内側全体に余白を作りたいならp-3、ボタン同士の間隔を空けたいならgap-2というように考えます。

スペーシングで読みやすいレイアウトを作る

Bootstrapのスペーシングユーティリティを使うと、margin、padding、gapをclassで簡単に調整できます。mは外側の余白、pは内側の余白を表し、t、b、s、e、x、yで方向を指定します。数字は余白の大きさを表し、0から5までを使って調整できます。

余白は、Webページの読みやすさに大きく関わります。見出しと本文の間、ボックス内の文字と枠の間、ボタン同士の間隔などを整えることで、ページ全体がすっきり見えます。

Bootstrapでは、p-3、mb-3、px-5、py-2、mt-5、gap-2などのclassを組み合わせるだけで、余白をすばやく調整できます。CSSを直接書く前に、まずはBootstrapのスペーシングclassでどこまで整えられるか試してみましょう。余白のルールを理解すると、Bootstrapを使ったレイアウト制作がさらにスムーズになります。