フレキシブルボックスモデルを使うと悩みが解消するかもしれない
2017.2.7
こんにちはmiyaです。
研修6日目、残すところあと4日!早い早い!!
floatを使った段組み
皆さん、段組み設定を表現するときfloat
を使ってますか?
私も業務で使ってましたし、職業訓練でも習いました。
float
を使った際、ちゃんと解除してあげないとレイアウトが崩れます。
その解除方法も3通り存在します。
clear:bothを使う
これはfloatさせたすぐ後のdiv
などにclear:both
としているする方法です。
float
にはleft
とright
があるので両方を意味するboth
でfloat
を解除するんですね。
See the Pen float-sample by futappa201702intern (@ftit201702) on CodePen.dark
このときの問題は、親要素の高さがなくなってしまう事!
clearfixを使う
float
させたいdiv
などを囲む親要素の疑似要素である:before
や:after
でfloat
を解除する方法です。
疑似要素である:before
や:after
で見えない板を作って下に続くコンテンツを潜り込ませないようにする手法です。
See the Pen float-sample-cf by futappa201702intern (@ftit201702) on CodePen.dark
この場合、親要素の高さは維持できています。
が、ちょっと記述が長いのが面倒…
(これでも短くなったのですが)
overflow:hiddenを使う
疑似要素を使わず、float
させたいものを囲む親要素にoverflow:hidden
を書くだけ!
一番簡単な方法ですね。
See the Pen float-sample-overflow by futappa201702intern (@ftit201702) on CodePen.dark
もっと楽になるかもしれないdisplay:flexを使う!
CSS3からはレスポンシブの事も考え、フレキシブルにできるdisplay:flex
が使えます!
かなり柔軟にできるのでオススメですよ!
横並び
See the Pen flex-sample by futappa201702intern (@ftit201702) on CodePen.dark
縦並び
See the Pen flex-sample-col by futappa201702intern (@ftit201702) on CodePen.dark
簡単に横並びから縦並びに変えることが可能!
そして今回のサンプルではしていませんが、並び替えだってCSSだけできます!
CSSの書き方で色々迷っていましたが、今は書き方が確立しているので活用できるのではないでしょうか!
モダンブラウザであれば対応してますし。float
の解除が面倒で避けてきた私にはとっても嬉しい機能です!