logo
  • ホーム
  • 制作実績
  • お問い合わせ
やま
  • ホーム
  • 制作実績
  • お問い合わせ
伸びしろブログ > Tips > 【CSS】要素の中央揃えは”flex”で簡単!
Tips

【CSS】要素の中央揃えは”flex”で簡単!

公開日 2021/12/12 最終更新日 2022/1/13

今回はCSSのflexを使って中央揃えにする方法を紹介します!

やま

目次

flexを使って中央揃えにするプロパティ”justify-content: center;”

<div class="container">
  <div class="container__block"></div>
  <div class="container__block"></div>
</div>
container {
  /* 子要素を横並びに */
  display: flex;
  /* 子要素を中央揃えに */
  justify-content: center;
  /* 背景を白色に */
  background-color: #fff;
}

.container__block {
  /* 幅を200pxに */
  width: 200px;
  /* 高さを200pxに */
  height: 200px;
  /* 要素の間隔を10pxに */
  margin: 10px;
  /* 背景を#222に */
  background-color: #222;
}

↓こんな感じに中央寄せになります。ブラウザの幅が変わっても中央寄せをキープしてくれます。

上下中央にしたい場合は”align-items: center;”を追加しましょう。

これはテキストの上下中央揃えにできるので便利。テキストの高さ揃えるときにtext-alignプロパティやvertical-alignプロパティを使うと面倒くさいですし

container {
  /* 子要素を横並びに */
  display: flex;
  /* 子要素を中央揃えに */
  justify-content: center;
  /* 背景を白色に */
  background-color: #fff;
 /* 上下中央に */
  align-items: center;
}

※ブロックの高さに依存するのでブラウザの高さを変えても付いてきません。

ちなみにですが、display: flex;は親要素直下の子要素にしか効きません。孫要素には効かないんです。

チートシートが便利

display: flex;はflexboxとも呼ばれていて横並びにするときに必ずと言っていいほど使います。しかもIE11でも対応しています。

並べ方の自由度は高いのでチートシートを参考にするといいと思います。
僕は毎回Webクリエイターボックスさんのチートシートを参考にさせて頂いています。まじで分かりやすい。

日本語対応!CSS Flexboxのチートシートを作ったので配布します

MDNもよく参考にしています。

https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container

横並びにしたくないけど中央に揃えたいときはflex-direction: column;を使用するといいですね。

その他の中央揃え方法

position: absolute;で中央揃え

要素を絶対配置にして中央揃えにする方法です。

.container {
  height: 400px;
  position: relative;
}

.container__block {
  background: #000;
  width: 200px;
  height: 200px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

display: grid;で中央揃え

.container {
  border: solid 1px #000;
  display: grid;
  place-items: center;
}

.container__block {
  background: #000;
  width: 200px;
  height: 200px;
  margin-top: 10px;
  margin-bottom: 10px;
}

※IEは対応していません。

いずれは主力になりそうなgridレイアウト。
案件で使うことが多くなってきそうなので理解深めときたいですね

https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout

margin: auto;を使う方法

.container {
  height: 400px;
  border: solid 1px #000;
  display: flex;
}

.container__block {
  background: #000;
  width: 200px;
  height: 200px;
  margin: auto;
}

一見、2行なので一番簡単なように見えますが注意点があります。

  1. インライン要素(pタグやaタグなど)には効きません → display: inline-block;を指定しましょう
  2. 親要素にも適用する必要がある。

line-heightで上下中央寄せ

子要素のline-heightを親要素のheightと同じにして上下中央揃えにできます。が、親要素に高さを指定する必要があることが難点。。。

タグ
css
display:flex
HTML
pickup
コーディング
中央寄せ
関連記事
【制作物第3弾】架空のコーポレートサイトコーディングしました!
【jQuery】slick.jsを使ったスライダーで詰まったつまらない話
【制作物公開】 アクセサリーブランドのLPコーディングしました!【第一弾】
:first-childと::afterを一緒に使いたい
効かないなんて有り得ない。CSS優先順位の話
【CSS・HTML】なんだこの余白!?右側に余白ができた時の対策方法
【jQuery】これ見りゃ簡単!しかも無料!?スクロールに連動するアニメーションの実装方法
【CSS】レスポンシブ時にpositionを解除する方法
最新記事
  • 【CSS・HTML】なんだこの余白!?右側に余白ができた時の対策方法

    【CSS・HTML】なんだこの余白!?右側に余白ができた時の対策方法

    2022年1月13日
  • 【CSS】要素の中央揃えは”flex”で簡単!

    【CSS】要素の中央揃えは”flex”で簡単!

    2021年12月12日
  • 【PhotoShopクリエーター能力認定試験 エキスパート】完全未経験から受験してみた。

    【PhotoShopクリエーター能力認定試験 エキスパート】完全未経験から受験してみた。

    2021年9月26日
カテゴリー
  • Tips
  • コーディング
  • カスタマイズ
  • その他
月別まとめ
  • 2022年1月
  • 2021年12月
  • 2021年9月
  • 2021年8月

About

やま

妻の地元帰りたい欲が爆発、富山にUターン。古民家を改装しながらWEB制作と農業でなんとか幸せに生きていこうと挑戦中。 会社員時代の数々の失敗と経験から「誠実と即レス」がモットー。web制作会社さん、webデザイナーさん。一度一緒に働かせてください。

  • プライバシーポリシー
  • 免責事項
  • お仕事の依頼
  • 価格表

Menu

  • ホーム
  • 制作実績
  • お問い合わせ

Twitter

Tweets by noukanaruo

This site is protected by reCAPTCHA and the GooglePrivacy Policy and Terms of Service apply.

© やま
この記事をシェアする