css3のFlexible Box Layout Moduleで横並びレイアウトが簡単に!
いわゆるFlexibleBoxとかFlexBoxとか呼ばれてるみたいなんですが、こちらまだ実践で使ったことがないので、試しに使ってみました。
こちらはcss3なので最新のブラウザしか対応してなくて、IE9ですら対応してないようなので、実践には向かないかと思います。
こちらはその名の通り、レイアウトをフレキシブルにできるもので、今までカラムをfloatを使っていたものをこちらのプロパティでできるというものです。
考え方としてはtableと似てると思います。
CSS Flexible Box Layout Module Level 1
とりあえずデモがありますのでそちらをご覧ください。
グロナビと、メインビジュアル下のコンテンツに使用しています。
htmlは以下のようになります。
1 2 3 4 5 6 7 8 | <ul class="gnavi"> <li class="navi01"><a href="#">Home</a></li> <li class="navi02"><a href="#">About us</a></li> <li class="navi03"><a href="#">Service</a></li> <li class="navi04"><a href="#">Work</a></li> <li class="navi05"><a href="#">Recruit</a></li> <li class="navi06"><a href="#">Blog</a></li> </ul> |
これに対してcssは、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | .gnavi { margin-top: -3px; display: flex; display: -webkit-flex; justify-content: space-around; -webkit-justify-content: space-around; } .gnavi li { flex: auto; -webkit-flex: auto; border-top: 3px solid #444; border-bottom: 3px solid #fff; -webkit-transition: all 0.3s; -moz-transition: all 0.3s; } |
親要素にdisplay: flex;を設定するだけで横並びレイアウトが簡単にできます!
あとは、justify-contentやflexの値を変更すると、幅や余白の調整ができます。
ちなみに、justify-contentのプロパティとイメージは以下になります。
参照:CSS Flexible Box Layout Module Level 1
もっと複雑かつ細かく設定できるのですが、本記事ではここまでとさせていただきます。
横並びだけでなく、縦の並びもできるようで、縦中央や縦均等で並べたり、今までなかなかできなかったことが簡単にできるようにもなります。
その辺はまたいずれご説明したいと思います。
Author Profile
スターフィールド編集部
SHARE