CSS3のflexboxでボックスレイアウトを組んでみる

css

2013年7月1日現在ですは、flexboxの仕様が変わった為、この記事は古い記事になりました。新しい記事は「CSS3のFlexboxが仕様が変わった!!新しいフレキシブルボックスレイアウトとは!?」になります。

css3になってから、以前のようにfloatを使わないでレイアウトを組むことが出来るようになった。
いままでとは全く概念が変わってボックスレイアウトに関する項目はすごい増えたので数回に分けて書いていこうと思う。

どうやら、フレックスボックスって呼ぶらしいですw

フレックスボックスレイアウトにする為には

フレックスボックスレイアウトにする為には、下記のcss3のdisplayプロパティを利用します。

名前 意味
flexbox ブロックレベルのフレキシブルボックス
inline-flexbox インラインレベルのフレキシブルボックス

上記の指定を並べたい要素の親要素に指定することが大事です。

//
#parent{
display:flexbox;
}

#parent{
display:inline-flexbox;
}
//以前の査定ではboxでした
#parent{
display:box;
}
#parent{
display:inline-box;
}

上記の設定をするだけで、横並びフレックスボックスレイアウトが完成してします。
以前のfloatによるボックスレイアウトより断然簡単です。また、幅を指定しなくてもその要素の幅に合わせてくれるのがいいですね。

フレックスボックスの位置を変えるには?

css3からはフレックスボックスの位置を指定できるようになっています。
プロパティはbox-packというプロパティになります。

名前 意味
start 親要素の左端から横並びになる
end 親要素の右端から横並びになる
center 親要素を基準にフレックスボックスがセンター揃えになる
justify 親要素の幅を基準にフレックスボックスを均等に配置してくれる

上記のプロパティを親要素に指定します。


//左揃え
box-pack:start;

//右揃え
box-pack:end;

//センター揃え
box-pack:center;

//均等揃え
box-pack:justify;
}

フレックスボックスの配置方法(縦/横)

先ほどはフレックスボックスの横並びの場合での位置を指定しましたが、縦にしたい時などのボックスの配置を指定できます。通常は横並びになると思うのであまり意識していないですが。

名前 意味
horizontal ボックスが横並びになる
vertical ボックスが縦並びになる
inherit こちらについては不明。

上記のプロパティを親要素に指定します。


//横並びの配置
box-orient:horizontal;

//縦並びの配置
box-orient:vertical;

//こちらについては不明。
box-orient:inherit;
}

という具合にcss3からは横並びのレイアウトが非常に簡単になりました。
その他にもフレックスボックスの子要素に指定するプロパティもあるのでそれは次回書くことにします。