css > float指定したボックスの背景が出なくなる件

  1. #body {
  2. background-color: #B4D543;
  3. }
  4.  
  5. #container {
  6. overflow: hidden;
  7. background-color: #FFFFFF;
  8. }
  9. #container:after {
  10. content: "";
  11. display: block;
  12. clear: both;
  13. height: 1px;
  14. overflow: hidden;
  15. }
  16. /* バックスラッシュハックと、スターハックを用いてWinIEハック */
  17. /*\*/
  18. * html #container {
  19. height: 1em;
  20. overflow: visible;
  21. }
  22. /**/
  23.  
  24. .leftBox {
  25. width: 45%;
  26. float: left;
  27. }
  28. .rightBox {
  29. width: 45%;
  30. float: right;
  31. }
  32.  

floatはボックスを"浮かせる"ものなので、内側のボックスが全部浮かんでしまった場合、外側のボックスの高さはなくなってしまう

overflow: hiddenを使用すると外側のボックスの高さがフロートした内側のボックスの高さによって拡張する

:afterにcontentを指定すると、ボックスの中の一番最後に新たなテキストや画像を挿入することができ、挿入したものをブロック要素化し"clear: both"をかけることによってボックス内のfloatをすべて解除することができる。すると、floatしているボックスの高さに応じて外側のボックスの高さが拡張されるようになる。(Firefox、Opera、Safari)

高さ指定を入れることでIE7で外側のボックスの高さをフロートした内側のボックスの高さに合わせて拡張する、高さ1emより溢れる内容が隠れないようにvisible指定(WinIEハックの部分)



最終更新:2013年02月08日 12:11