この記事ではflex-wrap:wrap
を指定して要素を複数行で表示した場合に垂直方向を揃えることができるalign-content
の使い方を解説します。
なおflex-wrap:nowrap
としている場合は、align-content
の記述は無効化されます。
align-content
はフレックスボックスだけでなくグリッドレイアウトにも使用できます。改行なしの場合flex-wrap:nowrap
flex-wrap:nowrap
が指定されている場合は、以下のとおりalign-content
の記述は無効化されます。
そのため必ずflex-wrap:wrap
で改行ありにしておきます。
See the Pen
by shiakisudev (@shiakisu)
on CodePen.
HTML
<div id="container7">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
<div>H</div>
<div>I</div>
<div>J</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
</div>
CSS
#container7{
display:flex;
flex-wrap:nowrap;/*改行なし*/
align-content:stretch;
height:180px;
width:180px;
border: 1px black solid;
}
#container7 > div{
height:30px;
width:30px;
box-sizing:border-box;
border: 1px black solid;
background-color:lime;
}
初期値stretch
align-content:stretch
を指定すると親要素の高さに応じて自動的に配置してくれます。
See the Pen
by shiakisudev (@shiakisu)
on CodePen.
HTML
<div id="container6">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
<div>H</div>
<div>I</div>
<div>J</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
</div>
CSS
#container6{
display:flex;
flex-wrap:wrap;/*改行あり*/
align-content:stretch;
height:180px;
width:180px;
border: 1px black solid;
}
#container6 > div{
height:30px;
width:30px;
box-sizing:border-box;
border: 1px black solid;
background-color:lime;
}
上揃えflex-start
align-content:flex-start
を指定すると上揃えになります。
See the Pen
align-content1 by shiakisudev (@shiakisu)
on CodePen.
HTML
<div id="container">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
<div>H</div>
<div>I</div>
<div>J</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
</div>
CSS
#container{
display:flex;
flex-wrap:wrap;/*改行あり*/
align-content:flex-start;
height:180px;
width:180px;
border: 1px black solid;
}
#container > div{
height:30px;
width:30px;
box-sizing:border-box;
border: 1px black solid;
background-color:lime;
}
下揃えflex-end
align-content:flex-end
を指定すると下揃えになります。
See the Pen
align-content2 by shiakisudev (@shiakisu)
on CodePen.
HTML
<div id="container2">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
<div>H</div>
<div>I</div>
<div>J</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
</div>
CSS
#container2{
display:flex;
flex-wrap:wrap;/*改行あり*/
align-content:flex-end;
height:180px;
width:180px;
border: 1px black solid;
}
#container2 > div{
height:30px;
width:30px;
box-sizing:border-box;
border: 1px black solid;
background-color:lime;
}
中央揃えcenter
See the Pen
by shiakisudev (@shiakisu)
on CodePen.
HTML
<div id="container3">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
<div>H</div>
<div>I</div>
<div>J</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
</div>
CSS
#container3{
display:flex;
flex-wrap:wrap;/*改行あり*/
align-content:center;
height:180px;
width:180px;
border: 1px black solid;
}
#container3 > div{
height:30px;
width:30px;
box-sizing:border-box;
border: 1px black solid;
background-color:lime;
}
両端揃えspace-between
align-content:space-between
を指定すると両端揃えになります。
See the Pen
align-content4 by shiakisudev (@shiakisu)
on CodePen.
HTML
<div id="container4">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
<div>H</div>
<div>I</div>
<div>J</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
</div>
CSS
#container4{
display:flex;
flex-wrap:wrap;/*改行あり*/
align-content:space-between;
height:180px;
width:180px;
border: 1px black solid;
}
#container4 > div{
height:30px;
width:30px;
box-sizing:border-box;
border: 1px black solid;
background-color:lime;
}
均等揃えspace-around
align-content:space-around
を指定すると、両端にも間隔を空けて均等に配置します。
See the Pen
by shiakisudev (@shiakisu)
on CodePen.
HTML
<div id="container5">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
<div>H</div>
<div>I</div>
<div>J</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
</div>
CSS
#container5{
display:flex;
flex-wrap:wrap;/*改行あり*/
align-content:space-around;
height:180px;
width:180px;
border: 1px black solid;
}
#container5 > div{
height:30px;
width:30px;
box-sizing:border-box;
border: 1px black solid;
background-color:lime;
}
以上で記事の解説はお終い!
HTML、CSS、JavaScriptをもっと勉強したい方にはUdemyがオススメ!同僚に差をつけよう!