ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > 【初心者でも簡単】CSSで要素を中央寄せする4つの方法を解説

【初心者でも簡単】CSSで要素を中央寄せする4つの方法を解説

HTML/CSS

2022/02/19

2023/04/20

CSS 中央寄せ記事サムネイル

「要素を中央に配置したい!」

Webサイトを構築するとき、そのような場面に遭遇することがよくあると思います。この記事では要素を中央寄せする使える際に使えるプロパティを4つ解説します。
要素を真ん中に配置するレイアウトは、デザインの観点からもきれいにみえる配置です。中央寄せするプロパティを学習して、実践で活用していきましょう。

CSSで中央に寄せることができるプロパティ4選

  • text-align
  • margin
  • flex
  • position
この記事で身につく内容
  • 要素を中央寄せする方法

 

「要素を右寄せする方法」については下記記事をご参照ください。

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

CSSで中央寄せする方法をご紹介

CSSで中央寄せする場合、下記プロパティで中央寄せできます。

  • text-align
  • flexboxとmarginの組み合わせ
  • margin
  • position

ここから一つずつ解説していきます。

 

【text-align】プロパティで左右中央寄せする方法

text-alignプロパティで要素を左右中央寄せすることができます。

text-alignブロック要素などの水平方向に対して配置を決めることができます。

例えばHTMLに以下のような記述があるとします。

<div class="parent">
  <span>インライン要素を中央に寄せます</span>
</div>
<div class="parent">
  <p>ブロック要素を中央に寄せます</p>
</div>

出力結果

インライン要素を中央に寄せます

ブロック要素を中央に寄せます

 

インライン要素の例としてspanタグをブロック要素の例としてpタグを使用します。スタイルを適用していない状態だと「左上」に出力されます。このHTMLにCSSで以下のスタイルを適用します。
parentクラスには要素の幅をイメージしやすいように枠線の色を赤にするスタイルを適用させます。

.parent {
  width: 100%;
  border: 1px solid red;
  text-align: center;
}

出力結果

インライン要素を中央に寄せます

ブロック要素を中央に寄せます

spanタグ、pタグの親要素のparentクラスに対してtext-align: center;を適用しています。これで中央に寄せることができました。

 

【flexbox】プロパティで左右中央寄せ

flexboxプロパティのひとつに、justify-contentがあります。

justify-content水平方向に対して揃え位置を指定することができます。左右中央に配置する場合はcenterを適用します。

.parent {
  border: 1px solid red;
  display: flex;
  justify-content: center;
}

出力結果

インライン要素を中央に寄せます

ブロック要素を中央に寄せます

 

ZeroPlusgate50教材の動画

【flexboxとmargin】プロパティで左右中央寄せ

flexboxとmarginプロパティを組み合わせて中央寄せすることもできます。中央に寄せたい要素の「親要素」にdisplay: flex;を適用し、中央に寄せたい要素にmargin: auto;を適用します。

.parent {
  border: 1px solid red;
  display: flex;
}
span {
  margin: auto;
}
p {
  margin: auto;
}

出力結果

インライン要素を中央に寄せます

ブロック要素を中央に寄せます

 

 

【margin】プロパティで左右中央寄せ

marginプロパティのみで中央寄せをすることもできます。

例えば親要素の幅を50%に指定してmargin-right: auto;margin-left: auto;を指定することで、要素を左右中央寄せすることができます。

.parent {
  border: 1px solid red;
  width: 50%;
  margin-right: auto;
  margin-left: auto;
}

出力結果

インライン要素を中央に寄せます

ブロック要素を中央に寄せます

 

 

margin-right: auto;margin-left: auto;の代わりにmargin: auto;でも中央寄せすることができます。なお上記の場合、text-align: center;を適用すればテキスト部分を中央寄せすることができます。

 

【postion】プロパティで中央寄せ

position は、top, left, right, bottomで最終的な位置を指定することができます。寄せたい要素(子要素)にposition: absolute;と最終的な位置(例:right, topなど)、その親要素にposition: relative;を適用させて使用します。

<div class="parent-inline">
  <span>インライン要素を中央に寄せます</span>
</div>
<div class="parent-block">
  <p>ブロック要素を中央に寄せます</p>
</div>
.parent-inline {
  position: relative;
  height: 100px;
  border: 1px solid red;
}

.parent-block {
  position: relative;
  height: 100px;
  border: 1px solid red;
}

span,
p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

出力結果

インライン要素を中央に寄せます

ブロック要素を中央に寄せます

transformプロパティと組み合わせて中央寄せすることができました。

 

CSSで上下中央寄せする方法

CSSでは左右に中央寄せできるだけではなく、上下にも中央寄せすることができます。

上下中央寄せする場合は下記のようなコードになります。

<div class="parent">
  <span>インライン要素を中央に寄せます</span>
</div>
<div class="parent">
  <p>ブロック要素を中央に寄せます</p>
</div>
.parent {
  border: 1px solid red;
  display: flex;
  align-items: center;
  justify-content: center;
}

.parent span {
  margin-top: 20px;
  margin-bottom: 20px;
}

出力結果

中央よせ

spanタグには上下中央に配置されているのを分かりやすくするために余白を設けています。align-itemsは垂直方向に対して揃え位置を指定することができます。上下中央に配置する場合はcenterを適用します。

 

画像を上下中央寄せする方法

画像を中央寄せする場合は次のようになります。

<div class="parent-block">
  <img src="dummy.png" alt="">
</div>
img {
  width: 100%;
  max-width: 350px;

}

.parent-block {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;

}

出力結果

画像中央寄せ

画像を上下左右中央に寄せることができました。

まとめ

デザイン的にきれいな配置にみえる中央寄せは、Webサイト制作のさまざまな場面で使用することができます。

今回紹介したプロパティを使って用途・状況に合わせて制作していきましょう!

 

HTMLやCSSには様々なタグやプロパティの種類があり、覚えることがたくさんあります。少しずつ学習を進めていきましょう。

Web制作は、その他にも学ぶべき知識が数多くあります。

Web制作初学者がWeb制作を学習するにあたって、押さえておくべき知識・技術は「Web制作学習ロードマップ」の記事にまとめています。どこまで勉強すればいいか分からない、次はどんなスキルを勉強すればいいか分からない、という方はぜひ参考にしてみてください!

 

CSSで中央寄せができるプロパティまとめ!

  • text-align:ブロック要素などの水平方向に対して配置を決める。
  • margin:flexboxと組み合わせる or 親要素を基準とする。
  • flex:flexboxのプロパティを使う。
  • position:relativeとabsoluteで位置を決める。
ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

\ 学んだことをSNSでシェアしよう /

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから