レイアウト③

この記事は約4分で読めます。

段組み(回り込み)

Flexbox(Flexible Box Layout Module)による段組み

Web ページのレイアウトを意識して少し複雑な記述をしてみる。
左右にレイアウトボックスを配置して、それぞれに文章を記述するレイアウトを「段組み」と呼ぶ。
段組みでは、左右に 2 個のレイアウトボックスと、その 2 個を囲むためのもう 1 個のレイアウトボックスが親要素として必要になる。
下の図では、灰色の領域が左右 2 個のレイアウトボックスを囲むための親要素である。
また、id 属性には水色のレイアウトボックスを box-left、ピンク色のレイアウトボックスを box-right、灰色のレイアウトボックスを box という名前で指定している。

HTML
<div id="box">
<div id="box-left">・・・</div>
<div id="box-right">・・・</div>
</div>

続いて、CSSの記述。
レイアウトボックスを左や右に配置するための方法としては、これまで「float」や「インラインブロック」を用いるのが一般的だったが、最近では「Flexbox」を用いるのが主流となっている。
「Flexbox」は、正式名称をFlexible Box Layout Moduleといい、CSS3から追加された新しい機能である。
親要素である「box」に、「display: flex;」を記述する。
Flexboxでは、親要素を「Flexコンテナー」、子要素を「Flexアイテム」と呼ぶ。

CSS
div#box {
width: 360px; height: 180px; padding: 8px;
background-color: gray;
display: flex;
 }
div#box-left {
width: 45%; height: 100%;
background-color: lightblue;
}
div#box-right {
width: 45%; height: 100%;
background-color: pink;
}

Flexコンテナーの記述

親要素に「display: flex;」を記述した上で、以下のプロパティを追加記述すれば、子要素の並び方を簡単に変更することが出来る。

子要素の並ぶ向きを指定するプロパティ「flex-direction」

説明
row(初期値)子要素アイテムを左から右へ配置
row-reverse子要素アイテムを右から左へ配置
column子要素アイテムを上から下へ配置
column-reverse子要素アイテムを下から上へ配置

子要素の折り返しと方向を指定するプロパティ「flex-wrap」

説明
nowrap(初期値)折り返さない
wrap単純に折り返す
wrap-reverse逆方向に折り返す
flex-flowflex-directionとflex-wrapをまとめて指定

子要素を水平方向に揃えるプロパティ「justify-content」

説明
flex-start(初期値)始端揃え
flex-end終端揃え
center中央揃え
space-between両端に合わせて均等間隔に配置
space-around両端に余白を入れて均等間隔に配置

子要素を垂直方向に揃えるプロパティ「align-items」

説明
stretch(初期値)子要素を上下の余白を埋めるように配置
flex-start子要素を上揃えに配置
flex-end子要素を下揃えに配置
center子要素を上下中央揃えに配置
baseline子要素をベースラインに揃えて配置

複数行の子要素を揃えるプロパティ「align-content」

説明
stretch(初期値)子要素の行を余白を埋めるように配置
flex-start子要素の行を上揃えで配置
flex-end子要素の行を下揃えに配置
center子要素の行を上下中央揃えに配置
space-between最上行と最下行の子要素を余白を空けずに配置し、残りの子要素行は均等に間隔を空けて配置
space-around最上行と最下行の子要素を含め、均等に間隔を空けて配置

Flexアイテムの記述

子要素の並び順を指定する

説明
order任意の順に並び替える
flex-grow子要素の伸びる比率
flex-shrink子要素の縮む比率
flex-basis子要素のベースとなる幅の指定
flex子要素の伸び率、縮み率、ベースの幅を一括指定 
align-self個別に垂直方向の位置を指定する
タイトルとURLをコピーしました