DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 三種有效解決DIV高度自適應的方法
三種有效解決DIV高度自適應的方法
編輯:CSS詳解     

本文和大家重點討論一下DIV高度自適應的三種有效解決方法,它們分別是一是JS法、二是背景圖填充法、三是“補丁大法”(比較變態)。

DIV高度自適應的三種有效解決方法

DIV+CSS設計俨然已成網頁設計界的標准了。這種設計的好處大家都是知道的,但有些小問題確實很棘手,例如令人頭痛的“DIV高度自適應”問題。

現在有三種解決DIV高度自適應行之有效的辦法,一是JS法、二是背景圖填充法、三是“補丁大法”(比較變態)。

1、JS法

代碼如下。原理:用JS判斷左右DIV的高度,若不一致則設為一致。

  1. <divstyledivstyle="width:500px;background:#cccccc;height:0px;">
  2. <dividdivid="right"style="width:380%;height:100%;
  3. float:left;border:1pxsolid#265492;">left</div>
  4. <dividdivid="left"style="width:60%;;float:left;
  5. background:#376037;">
  6. right<br>
  7. right<br>
  8. right<br>
  9. right<br>
  10. right<br>
  11. right<br>
  12. right<br>
  13. </div>
  14. </div>
  15. <scripttypescripttype="text/Javascript">
  16. <!--
  17. vara=document.getElementById("left");
  18. varb=document.getElementById("right");
  19. if(a.clIEntHeight<b.clIEntHeight)
  20. {
  21. a.style.height=b.clIEntHeight+"px";
  22. }
  23. else
  24. {
  25. b.style.height=a.clIEntHeight+"px";
  26. }
  27. -->
  28. </script>

2、背景圖填充法

第二種解決DIV高度自適應的方法是背景圖填充法,這是大站用得比較多的方法,如163等,研究了一下,結果如下。

這裡是給父DIV設置了背景圖片填充,所有DIV都不設高度。

Html代碼(取自163最終頁面):

  1. <divclassdivclass="endArea">
  2. <divclassdivclass="col1">第一列 左邊正文</div>
  3. <divclassdivclass="col3">第二列 右邊<br/><br/>
  4. <br/><br/><br/><br/><br/><br/><br/><br/><br/>字字</div>
  5. <divclassdivclass="col2">第三列 中間圖片</div>
  6. <divclassdivclass="clear"></div>
  7. </div>

CSS代碼(取自163最終頁面):

  1. .endArea{margin:0auto;width:960px;
  2. background:url(/School/UploadFiles_7810/201203/20120303165659962.gif);clear:both;}
  3. .endArea.col1{float:left;width:573px;}
  4. .endArea.col2{float:left;width:25px;}
  5. .endArea.col3{float:right;width:362px;}

3、補丁大法

最後一種DIV高度自適應的方法就是補丁大法。就是 “隱藏容器溢出”和“正內補丁”和“負外補丁”結合的方法。比較另類一點的方法,在IE6、IE7、FF3下測試通過。原理自己理解。

要點:

1、父DIV設置 overflow:hidden;

2、對要高度自適應的DIV設置 padding-bottom:100000px;margin-bottom:-100000px;兩列或多列同理。

代碼如下:

  1. <Html>
  2. <head>
  3. <metahttp-equivmetahttp-equiv="Content-Type"content="text/Html;charset=gb2312"/>
  4. <title>Copterfly'sBlog</title>
  5. <styletypestyletype="text/CSS">
  6. <!--
  7. #wrap{overflow:hidden;}
  8. #sidebar_left,#sidebar_right{padding-bottom:100000px;margin-bottom:-100000px;}
  9. -->
  10. </style></head>
  11. <body>
  12. <dividdivid="wrap"style="width:300px;background:#FFFF00;">
  13. <dividdivid="sidebar_left"style="float:left;width:100px;
  14. background:#777;">Left</div>
  15. <dividdivid="sidebar_mid"style="float:left;width:100px;
  16. background:#999;">
  17. Middle<br/>
  18. Middle<br/>
  19. Middle<br/>
  20. Middle<br/>
  21. Middle<br/>
  22. Middle<br/>
  23. Middle<br/>
  24. Middle<br/>
  25. Middle<br/>
  26. </div>
  27. <dividdivid="sidebar_right"style="float:right;width:100px;
  28. background:#888;">Right</div>
  29. </div>
  30. </body>
  31. </Html>

請根據實際情況,三選一用。

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