目指しているレイアウト |
崩れてしまった現実.下が崩れたのは別の原因なので関係ない。 |
結論
float指定したら、疑似要素を利用して最後にはclearプロパティを使ってfloatの効果を無効化しよう。
なぜ崩れるの?
floatを指定したら、親タグはそのタグを高さ計算に含めない仕様となっているから。
そう策定されているので従う他ないので、解決策を下に書いていく。
1.clearプロパティを使う
学習サイトではこちらの方法を教えていたので、はじめはこちらを使っていたが、下の方法がよりスマートである。
2.:afterを持つCSS要素を親タグにつけるとよりスマート
cssに.hogehoge:afterと書くと、そのcssを指定されたタグの末尾へ自動的に.hogehoge:afterでスタイルされたタグを追加してくれる。便利機能。
これを使うとHTMLに余計なタグを追加する必要がなくなってよりよい感じになる。
.clearfix::after { content: ""; clear: both; display: block; }
:afterは疑似要素と呼ばれるもので他にも:beforeとかある。もう一度上げるがこちらのサイトが詳しい。疑似要素を利用したテクニックを紹介しているので参考になる。
まとめ
floatプロパティを使うとCSSの仕様上、レイアウトが崩れてしまうケースがでてくるので、floatを適応させたい部分の末尾にはclearプロパティでfloatの効果を無効化しておく。
そのさい、htmlに空タグを追加するのではなく、疑似要素である:afterを使うとhtmlがきれいに保てる。
0 件のコメント:
コメントを投稿