この記事はなに?
インライン要素の垂直方向の配置には vertical-align プロパティが使えますが、ブロック要素には適用できませんでした。
align-content は、 display: grid
または display: flex
を指定したコンテナ要素内で使用するプロパティとして使われてきました。
2024年以降は、ブロック要素のレイアウトをするためのプロパティとして、主要なブラウザで広くサポートされるようになりました。
この記事では、ブロック要素を中央に配置するための align-content
の使い方について説明します。
垂直方向の中央寄せ
以下のHTMLとCSSを使用すると、ブロック要素を垂直方向に中央寄せできます。
<div class="container">
<p class="text">テキスト</p>
</div>
.container {
align-content: center;
height: 240px;
//見やすいように装飾を追加
background-color: #ccc;
}
出力結果は下記のスクリーンショットのようになります。
水平方向と垂直方向の中央寄せ
テキストだけでなく、ボタンなどブロック要素全体を水平方向と垂直方向の両方で中央寄せしたい場合、 margin: auto
プロパティを組み合わせて使用すると、簡単に対応できます。
少し装飾要素を足した状態で、先程のHTMLに css を適応します。
.container {
align-content: center;
height: 240px;
//見やすいように装飾を追加
background-color: #ccc;
}
.text{
margin: auto;
width: 200px;
//見やすいように装飾を追加
background-color: #eee;
border-radius: 8px;
padding: 8px;
}
下記のように出力されました。
align-content
ブロック要素のレイアウトのサポート状況
align-content
は display: grid
または display: flex
を指定したコンテナ要素内で使用するプロパティです。
Chrome、Firefox、Safariなどの主要なブラウザで広くサポートされており、安心して使用できます。
ブロック要素のレイアウトとしてのサポート状況をCan I Use で確認しました。
2025年時点では、Chrome、Firefox、Safariなど主要なブラウザを始め、広く対応していることがわかります。
ちなみに一番行数が少なく中央寄せできる方法は、今のところ grid
を使う方法だと私は思います。
参考として、過去に書いた記事を紹介します。
この記事が誰かの役に立てば幸いです。