LoginSignup
0
1

More than 5 years have passed since last update.

CSSで要素を上下方向に中央寄せしたいときにはFlexboxを使うと良い

Last updated at Posted at 2018-08-17

Webメディアを開発しているとぶち当たるであろう「どうやって縦方向にセンタリングすればよいのかわからない」問題に対する処方箋です。

インライン要素であれば、vertical-align: middleで解決するかもしれません。
しかし、ブロック要素の縦方向での中央寄せは一筋縄にいかず、table-cellを利用した解決策などHackyなテクニックが生み出されてきました。

しかし、いまではFlexboxを使うことでとても簡単に実装できます。
現代のモダンブラウザには、ほぼすべてのブラウザにFlexboxが実装されているため、Flexboxを利用した方がよいと思われます。 1

以下にコード例を示します。2


<div class="parent-elem">
  <div class="child-elem">
    ...
  </div>
</div>

.parent-elem {
  display: flex;
  align-items: center; /* 縦方向のセンタリング */
  justify-content: center; /* 横方向のセンタリングもついでに */
}

.child-elem {
  /* 特定の小要素だけをセンタリングしたい場合は親要素にalign-itemsを当てるのではなく、こちらを使うとよい */
  align-self: center;
}

  1. FlexboxにバグがあるIE11に対応する必要があるのならば、polyfillをいれることをオススメします。 

  2. CodepenでSampleも書いておきました。 

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1