父級div沒高度不能自適應高度的原因——子級使用css float浮動


  好久沒寫博客了,最近撿起前端代碼開始碼,一些基本的東西都忘記了,覺得自己停滯不前的原因就是沒做好鞏固——廢話

  我們常常在做盒子嵌套的時候,最外層盒子不想給他設置高度,因為我們填充的內容不確定有多大,一般就選擇auto自適應。

  然,子級盒子又是一個嵌套或者樣式復雜點,超出父級盒子的邊界外邊,在央視里面調來調去調不好,試過修改display屬性、又再嵌套盒子,都不是很理想,最后找了一圈(強大的百度)發現問題所在了,這個是由於浮動產生原因。

初始代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>div_自適應</title>
 5     <style type="text/css">
 6     .div1{
 7         border: 1px solid #ccc;
 8         width: 500px;
 9         padding: 20px;}
10     .div_l{
11         float: left;
12         background-color: lightgreen;
13         width: 200px;
14         height: 200px;}
15     .div_r{
16         float: right;
17         background-color:green;
18         width: 200px;
19         height: 200px;}
20     </style>
21 </head>
22 <body>
23     <div class="div1">
24         <div class="div_l">div_l</div>
25         <div class="div_r">div_r</div>
26     </div>
27 </body>
28 </html>

效果圖如上,按照代碼中div的需要,給父級div設置height=200px即可,若子級div數據較多,或者從后台調取數據進行添加時,設置的高度又不適用了。

代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>div_自適應</title>
 5     <style type="text/css">
 6     .div1{
 7         border: 1px solid #ccc;
 8         width: 500px;height: 200px;
 9         padding: 20px;}
10     div div{
11         float: left;
12         margin-right: 50px;
13         margin-bottom: 50px;
14         background-color:green;
15         width: 200px;
16         height: 200px;}
17     </style>
18 </head>
19 <body>
20     <div class="div1">
21         <div class="div_1">div_1</div>
22         <div class="div_2">div_2</div>
23         <div class="div_3">div_3</div>
24         <div class="div_4">div_4</div>
25     </div>
26 </body>
27 </html>

效果圖如下:

方法一:對父級加 overflow 樣式

代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>div_自適應</title>
 5     <style type="text/css">
 6     .div1{
 7         border: 1px solid #ccc;
 8         width: 500px;height: 200px;
 9         padding: 20px;
10         overflow: hidden;/*overflow:*/}
11     div div{
12         float: left;
13         margin-right: 50px;
14         margin-bottom: 50px;
15         background-color:green;
16         width: 200px;
17         height: 200px;}
18     </style>
19 </head>
20 <body>
21     <div class="div1">
22         <div class="div_1">div_1</div>
23         <div class="div_2">div_2</div>
24         <div class="div_3">div_3</div>
25         <div class="div_4">div_4</div>
26     </div>
27 </body>
28 </html>

效果如下:

 

治標不治本,我要的是自適應高度,要都顯示。

方法二:對子級使用 clear 清除浮動

 插入一個空的div盒子,用來做清除浮動,代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>div_自適應</title>
 5     <style type="text/css">
 6     .div1{
 7         border: 1px solid #ccc;
 8         width: 500px;
 9         padding: 20px;
10         }
11     .div_1,.div_2{
12         float: left;
13         margin-right: 50px;
14         margin-bottom: 50px;
15         background-color:green;
16         width: 200px;
17         height: 200px;}
18         .clear{ clear:both} 
19     </style>
20 </head>
21 <body>
22     <div class="div1">
23         <div class="div_1">div_1</div>
24         <div class="div_2">div_2</div>
25         <div class="div_2">div_3</div>
26         <div class="clear"></div> 
27     </div>
28 </body>
29 </html>

 OK了,效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM