子要素のfloat時にも親要素の高さを保持させるには

技術メモ

親要素の内側に複数の子要素がある場合、デフォルトでは子要素は上下に表示され、親要素の高さもそれに応じて伸縮します。しかし、その子要素に「float: left; 」等を適用して横並びに表示させると、親要素の高さがなくなってしまうという問題があります。たとえばこんな感じの構造のとき:

<!--親要素の高さがなくなるパターン-->
<div class="親要素">
  <ul>
  <li class="子要素">○○</li>
  <li class="子要素">▽▽</li>
  </ul>
</div><!--/親要素-->

<style>
.子要素 {  float: left;  }
</style>

この記述だと親要素の高さがなくなってしまうのですが、cssを次のように記述すれば、親要素が子要素を包むだけの高さをもたせることができます:

<style>
/*子要素をfloatさせても親要素の高さが保たれる*/
親要素:after {
  content: ""; /*直後に空の疑似要素を指定*/
  display: block; /*ブロック要素にする*/
  clear: both; /*フロート解除*/
}
.子要素 {float: left;}
</style>

上記では子要素の例としてliを使ってますが、複数の異なる子要素であっても同じように運用できます。

よくある応用例としては、サイト本文エリア<div class=”content”>の内側に「記事本文」と「サイドメニュー」という2つの子要素を持つ構造のとき。
左側に記事本文、右側にサイドメニューが来るようにfloatさせると、親要素の.contentの高さがなくなってしまいますが、上記の記述方法を使えば綺麗に回避できます。

にほんブログ村 その他日記ブログ ひとりごとへ
にほんブログ村 「ひとりごと」ランキング参加中です。ポチッと応援お願いします♪

コメント

この記事へのコメントはありません。

naochka

長年IT業界でWeb+デザインをやってました。いまはWordPress中心です。やや技術的な話が多いですが、なぜか世界中あちこち放浪してた関係でたまに想い出を綴ってたりもします。 Wall Street Journalを読む会の英語ナビゲーターやってました。(実は帰国子女)

最近の記事

  1. 第15回 Wall Street Journalを読む会(最終回):市場が再び短期思考に回帰する理由

  2. 第14回 Wall Street Journalを読む会:アメリカ発の技術革新が、かつてない長期のドル高トレンドを牽引

  3. 第13回 Wall Street Journalを読む会:アメリカで実体経済と株価が乖離している理由とは?

  4. UAの二重計測問題の確認方法と解決策:UAとGA4を共存運用+All in One SEOで連携してる人は注意

  5. 初めてのWordPressテーマ選び、美麗デザインを購入するときは設定の難易度に気をつけて

アーカイブ

次回のWSJ会開催@Peatix

TOP