CSSのalign-contentプロパティでcenter値を使ってフレックスラインを中央揃えする方法
CSSのalign-contentプロパティにcenterを指定すると、フレックスコンテナ内の複数行(フレックスライン)を交差軸方向の中央に配置できます。
align-content: centerとは?
align-contentは、flex-wrap: wrapなどによってアイテムが複数行に折り返された場合に、各行全体の配置位置を制御するプロパティです。center値を指定すると、すべてのフレックスラインがひとまとまりとしてコンテナの中央に寄せられます。
実装例
以下のコードを実行すると、赤い背景のコンテナ内で黄色いボックス群が上下中央に配置されているのが確認できます。
<!DOCTYPE html>
<html>
<head>
<style>
.mycontainer {
display: flex;
height: 200px;
background-color: red;
align-content: center;
flex-wrap: wrap;
}
.mycontainer > div {
background-color: yellow;
text-align: center;
line-height: 60px;
font-size: 30px;
width: 100px;
margin: 5px;
}
</style>
</head>
<body>
<h1>Queue</h1>
<div class="mycontainer">
<div>Q1</div>
<div>Q2</div>
<div>Q3</div>
<div>Q4</div>
<div>Q5</div>
<div>Q6</div>
<div>Q7</div>
<div>Q8</div>
</div>
</body>
</html>ポイント解説
- display: flex: コンテナをフレックスボックスとして定義します。
- height: 200px: コンテナに高さを持たせることで、中央配置の効果が視覚的にわかりやすくなります。
- flex-wrap: wrap: アイテムが幅を超えると次の行へ折り返します。複数行が存在しないと
align-contentは機能しないため、この指定が重要です。 - align-content: center: 折り返された複数行をコンテナの垂直方向中央にまとめて配置します。
なお、単一の行だけを中央に配置したい場合はalign-items: centerを使用します。align-contentはあくまで「複数行全体」の配置を扱うプロパティである点に注意しましょう。
-
CSSのflex-basisプロパティとは?フレックスアイテムの初期サイズ指定方法を解説
CSSのflex-basisプロパティは、Flexboxレイアウトにおけるフレックスアイテム(子要素)の基本となる長さ(主軸方向の初期サイズ)を設定するためのプロパティです。flex-growやflex-shrinkが伸縮の挙動を制御するのに対し、flex-basisはアイテムが伸縮する前の基準サイズを決めます。 flex-basisで使える主な値 auto(初期値):要素自身のwidthまたはheightの値に依存します。 length:px、em、remなどの単位で固定値を指定します。 percentage:親コンテナの幅に対する割合(%)で指定します。 content:コンテンツの内容
-
CSSのalign-contentプロパティにflex-start値を指定する方法
CSSのalign-contentプロパティに値flex-startを指定すると、フレックスコンテナ内の複数行のアイテムをコンテナの先頭(開始位置)に寄せて配置できます。この値は、flex-wrap: wrap;などによってフレックスアイテムが複数行に折り返されている場合に有効になります。各行は互いに詰められ、クロス軸方向の開始側にまとめて配置されます。使用例以下のコードを実行すると、align-content: flex-start;の動作を確認できます。<!DOCTYPE html> <html> <head> &nb