三種Div高度自適應的方法,div高度自適應

來源:互聯網
上載者:User

三種Div高度自適應的方法,div高度自適應

讓DIV高度自適應,這是在網頁設計中常遇到的問題,為了給大家提供參考,這裡提供3種div高度自適應的方法:一是JS法、二是背景圖填充法、三是“補丁大法”(比較變態)。

1、JS法

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

Java代碼  
  1. <div style="width:500px;background:#cccccc;height:0px;">  
  2. <div id="right" style="width:380%;height:100%;float:left;border:1px solid #265492;">left</div>  
  3. <div id="left" style="width:60%;;float:left;background:#376037;">  
  4. right<br>  
  5. right<br>  
  6. right<br>  
  7. right<br>  
  8. right<br>  
  9. right<br>  
  10. right<br>  
  11. </div>  
  12. </div>  
  13. <script type="text/javascript">  
  14. <!--   
  15. var a=document.getElementById("left");  
  16. var b=document.getElementById("right");  
  17. if(a.clientHeight<b.clientHeight){  
  18.   a.style.height=b.clientHeight+"px";  
  19. }else{   
  20.   b.style.height=a.clientHeight+"px";  
  21. }  
  22. -->  
  23. </script>  

 

 

這是大站用得比較多的方法,如163等,研究了一下,結果如下。2、背景圖填充法

這裡是給父DIV設定了背景圖片填充,所有DIV都不設高度。前端資源分享

HTML代碼:

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

 

CSS代碼:

Java代碼  
  1. .endArea{margin:0 auto; width:960px; background:url(http://cimg2.163.com/cnews/img07/end_n_bg1.gif); clear:both;}  
  2. .endArea .col1{float:left; width:573px; }  
  3. .endArea .col2{float:left; width:25px; }  
  4. .endArea .col3{float:right; width:362px;}  

 

3、補丁大法

就是“隱藏容器溢出”和“正內補丁”和“負外補丁”結合的方法。比較另類的方法,在IE6、IE7、FF3下測試通過。要點:

1、父DIV設定 overflow:hidden;架構資源分享

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

代碼如下:

Java代碼  
  1. <html>  
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  4. <title>Div高度自適應</title>  
  5. <style type="text/css">  
  6. #wrap{overflow:hidden;}  
  7. #sidebar_left,#sidebar_right{padding-bottom:100000px;margin-bottom:-100000px;}  
  8. </style>  
  9. </head>  
  10. <body>  
  11. <div id="wrap" style="width:300px; background:#FFFF00;">  
  12. <div id="sidebar_left" style="float:left;width:100px; background:#777;">居左</div>  
  13. <div id="sidebar_mid" style="float:left;width:100px; background:#999;">  
  14. 置中<br />  
  15. 置中<br />  
  16. 置中<br />  
  17. 置中<br />  
  18. 置中<br />  
  19. 置中<br />  
  20. 置中<br />  
  21. </div><div id="sidebar_right" style="float:right;width:100px; background:#888;">居右</div></div>  
  22. </body>  
  23. </html>  

 

以上三種方法都可以解決Div高度自適應,請根據你自己的需要,三選一



怎讓Div自適應高度

很鬱悶的一件事情是:有時你需要一個DIV根據裡面的元素自動適應高度,所以,你肯定無法給這個DIV定義一個實際高度。而你隨便嵌套一個DIV卻發現並不適應高度。這事就鬱悶了。下面給出一些方法。大致的例子是: <div id="main"><div id="content"></div></div>當Content內容多時,即使main設定了高度100%或auto。在不同瀏覽器下還是不能完好的自動伸展。內容的高度比較高了,但容器main的高度還是不能撐開。我們可以通過三種方法來解決這個問題。增加一個清除浮動,讓父容器知道高度。請注意,清除浮動的容器中有一個空格。<div id="main"><div id="content"></div><div style="font: 0px/0px sans-serif;clear: both;display: block"> </div></div> 增加一個容器,在代碼中存在,但在視覺中不可見。<div id="main"><div id="content"></div><div style="height:1px; margin-top:-1px;clear: both;overflow:hidden;"></div></div> 增加一個BR並設定樣式為clear:both。<div id="main"><div id="content"></div><br style="clear:both;" /></div>以上三個方法都不是最好的解決方案,因為在程式碼觀念中是提倡盡量不要添加無意義的標籤代碼。現在,你可以用下面的方法來實現DIV自適應高度效果#main {height:100%;
 
怎讓 div 高度自適應

問題一
main 其實不用定高度
如果子框 left center right 如果有浮動 記得清除浮動 這樣main 就會高度自適應了

問題二
寬度自適應可以讓 left right 分別向左和像右浮動 center不要浮動 寬度就會自適應了
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.