DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 深入學習CSS的Margin和Padding屬性用法(2)
深入學習CSS的Margin和Padding屬性用法(2)
編輯:CSS詳解     

外層box自動計算高度的問題

根據W3C定義,沒有float屬性的外層box不會自動計算高度,要計算高度,必須在內層最後一個box加入clear:both。

Opera、netscape、mozilla等不會計算外層box高度,但是微軟IE6會自動計算外層高度。比如:

  1. "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">
  2. <HtmlXMLnsHtmlXMLns="http://www.w3.org/1999/xHtml">
  3. <head>
  4. <metahttp-equivmetahttp-equiv="Content-Type"content="text/Html;charset=gb2312"/>
  5. <title>www.webjx.comtitle>
  6. <style>
  7. .outer{
  8. width:600px;
  9. background:#000;
  10. }
  11. .inner1{
  12. float:left;
  13. width:200px;
  14. height:100px;
  15. margin:5px;
  16. background:red;
  17. }
  18. .inner2{
  19. float:left;
  20. width:200px;
  21. height:100px;
  22. margin:5px;
  23. background:yellow;
  24. }
  25. style>
  26. head>
  27. <body>
  28. <divclassdivclass="outer">
  29. <divclassdivclass="inner1">div>
  30. <divclassdivclass="inner2">div>
  31. div>
  32. body>
  33. Html>

上面的代碼在IE中有黑色的背景,但是沒有正確的計算上下的margin,在inner2下面加上一個包含clear:both屬性的div後,可以正確計算margin。但是Firefox中仍然沒有黑色背景,通常的解決辦法是定義一下clear:both這個div的高度,或者插入全角空格,這樣就必須增加額外的高度。網上一種比較好的解決辦法是在外層div中加入overflow屬性,同時使用clear:both,這樣就不會增加額外的高度了。如下:

  1. "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">
  2. <HtmlXMLnsHtmlXMLns="http://www.w3.org/1999/xHtml">
  3. <head>
  4. <metahttp-equivmetahttp-equiv="Content-Type"content="text/Html;charset=gb2312"/>
  5. <title>www.webjx.comtitle>
  6. <style>
  7. .outer{
  8. width:600px;
  9. background:#000;
  10. overflow:auto;
  11. }
  12. .inner1{
  13. display:inline;
  14. float:left;
  15. width:200px;
  16. height:100px;
  17. margin:5px;
  18. background:red;
  19. }
  20. .inner2{
  21. display:inline;
  22. float:left;
  23. width:200px;
  24. height:100px;
  25. margin:5px;
  26. background:yellow;
  27. }
  28. .clear{
  29. clear:both;
  30. }
  31. style>
  32. head>
  33. <body>
  34. <divclassdivclass="outer">
  35. <divclassdivclass="inner1">div>
  36. <divclassdivclass="inner2">div>
  37. <divclassdivclass="clear">div>
  38. div>
  39. body>
  40. Html>

因此,外層CSS要定義overflow屬性,內層最後要加上clear屬性。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved