「なんだか見た目がしっくりこない…」
その解決のカギは中央寄せにあるかもしれません。
ウェブデザインでは、バナーや見出しといった要素をどこに配置するかで全体の印象が大きく変わります。特に中央に配置することで、視線を自然に集めデザインにまとまりを生むことができます。
この記事では、CSSを使った要素の左右・上下中央寄せの方法を初心者にもわかりやすく解説!「バナーが端に寄ってバランスが悪い…」という悩みを解消したい方は、ぜひご覧ください。
デフォルト:左寄せ
カスタマイズ後:中央寄せ
- 左右中央寄せの簡単な実装方法
- 上下左右を完璧に中央寄せするテクニック
要素を【左右】中央寄せにする方法
ウェブデザインで要素を左右に中央寄せする方法を、初心者にもわかりやすく解説します。以下の5つのアプローチを紹介します。
- インライン要素の中央寄せ(text-align:center)
- ブロック要素の中央寄せ(margin-inline:auto)
- Flexboxを使用する方法
- Gridを使用する方法
- positionを使用する方法
インライン要素|text-align:center
を使用する
インライン要素(例: <span>、<a>、<img>)やdisplay: inline-blockの要素を中央寄せするには、親要素にtext-align: center
を適用します。
テキストやバナー画像(<img>)を手軽に中央に配置したい場合に最適です。
- 適用対象はdisplay: inlineまたはinline-blockの要素に限られます。
- ブロック要素には効果がありません。
<div class="center-text">
<img src="banner.jpg" alt="バナー">
</div>
.center-text {
text-align: center;
}
ブロック要素|margin-inline:auto;
を使用する
ブロック要素(例: <div>)を左右中央に配置するには、margin-inline: auto
を使用します。この方法は、書字方向(横書きや縦書き)に依存せず、左右のマージンを自動調整します。
- 従来のmargin: autoでも可能ですが、margin-inline: autoは書字方向に対応し、より柔軟です。
<img src="banner.jpg" alt="バナー" class="center-block">
.center-block {
display: block;
margin-inline: auto;
}
Flexboxを使用する
親要素にdisplay: flex
とjustify-content: center
を指定することで、子要素を水平方向に中央寄せできます。柔軟性が高く、モダンなウェブデザインでよく使われます。
<div class="flex-center">
<img src="banner.jpg" alt="バナー">
</div>
.flex-center {
display: flex;
justify-content: center;
}
Grid を使用する
親要素に display: grid;
を指定し、 justify-content: center;
を適用することで子要素を水平方向に中央寄せできます。
<div class="grid-center">
<img src="banner.jpg" alt="バナー">
</div>
.grid-center {
display: grid;
justify-content: center;
}
positionを使用する
position: absolute;
と transform: translate();
を使うことで、要素を中央に配置できます。
<div class="position-center">
<img src="banner.jpg" alt="バナー">
</div>
.position-center {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
要素を【上下左右】中央に配置する方法

画面の上下左右中央に要素を配置する場合、height
の指定が必要です。
Gridを使用する
display: grid
とplace-content: center
を使用すると、上下左右の中央寄せが直感的に実現できます。グリッドレイアウトはレスポンシブデザインにも適しています。
<div class="container">
<div class="content">中央の要素</div>
</div>
.container {
display: grid;
place-content: center; /* 上下左右中央配置 */
height: 100vh; /* ビューポートの高さを指定 */
}
place-content: centerは、justify-content: centerとalign-content: centerのショートハンドです。
Flexboxを使用する
display: flex
にjustify-content: center(水平)
とalign-items: center(垂直)
を組み合わせる方法です。モダンで直感的なアプローチです。
<div class="container">
<div class="content">中央の要素</div>
</div>
.container {
display: flex;
justify-content: center; /* 水平方向の中央揃え */
align-items: center; /* 垂直方向の中央揃え */
height: 100vh; /* ビューポートの高さを指定 */
}
この方法では、justify-content: center;
が水平方向の中央揃え、align-items: center;
が垂直方向の中央揃えを行います。
positionを使用する
position: absolute
とtransform: translate(-50%, -50%)
を使用する方法です。親要素にposition: relative
と高さの指定が必要です。
<div class="container">
<div class="content">中央の要素</div>
</div>
.container {
position: relative;
height: 100vh;
}
.content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
比較|上下左右中央寄せにする方法
バナーを中央寄せする方法は、用途やレイアウトに応じて選択肢が異なります。以下の表で各方法の特徴を比較しました。
方法 | メリット | デメリット |
---|---|---|
text-align:center | 簡単に適用可能 | インライン要素にのみ適用 |
margin-inline:auto | ブロック要素の中央寄せに最適 | 親要素の影響を受ける |
Flexbox | 柔軟なレイアウトが可能 | 親要素の設定が必要 |
Grid | レスポンシブデザインに強い | グリッドの理解が必要 |
position + transform | ピンポイントな中央配置が可能 | 記述がやや複雑 |
選び方のポイント
- テキストや画像を素早く中央にしたい → text-align: center
- ブロック要素をシンプルに中央寄せ → margin-inline: auto
- モダンで柔軟なレイアウトを構築 → Flexbox または Grid
- 特定の位置にピンポイントで配置 → Position + Transform
まとめ
この記事では、ブロック要素・インライン要素・画像やボタンなど、さまざまな要素を中央揃えにする方法を解説しました。
これらを組み合わせることで、読者にとって見やすく操作しやすいブログデザインを作り上げられます。
Comment 記事の感想を書き込んでいただけると幸いです