Html-Css-div標簽嵌套浮動div標簽時無法撐開外部div的解決


 

當DIV1里面嵌套有一個DIV2,當DIV2設置了浮動,那么DIV1是無法被撐開的

當DIV1里面嵌套有一個DIV2,當DIV2設置了浮動,那么DIV1是無法被撐開的,也就是說DIV2在這里相當於浮在了頁面上方,跟DIV1不在同一個層面,導致了DIV2無法把DIV1給撐開,這是一個老生常談的問題,也是困擾很多剛接觸DIV+CSS的朋友的一個問題。

 

先來看看這個問題的實際效果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 </head>

 <body>
  <div style="background-color:red;width:100px;">div 1
    <div style="background-color:green;float:left;height:300px;width:40px;">div float</div>
  </div>
 </body>
</html>

 

 

看圖

 

這里本來DIV1是套在了DIV2的外面的,如果是使用表格做的話,那么DIV1肯定被撐開了,效果應該是如下所示

那如何解決這個浮動了之后無法把容器撐開的局面呢?解決的方法這里介紹2仲。

第一種:在浮動結束的容器后面加上這段代碼

<div style=”clear:both;”></div>

意思是清除浮動。

第二種:在外層DIV,也就是這里的DIV1的CSS里面加入以下CSS代碼

overflow: auto;

這2種方法都可以實現DIV2把DIV1撐開。不過這里建議大家使用第一種方法,要養成一個習慣,在浮動應用完后消除浮動,這樣后面的DIV就不會繼承這個浮動(就像在編程的時候,在打開數據庫,操作完后,要養成個習慣在后面把數據庫關閉)。也就是說浮動這個東西會被繼承,除非消除這個浮動,才不會讓后面接着的DIV受到繼承。其實不僅是DIV,其他的像P等其他的容器都會有繼承的效應,大家要養成一個習慣記得要消除浮動。

 

完整案例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 </head>

 <body>
  <div style="background-color:red;width:100px;overflow:auto;">div 1
    <div style="background-color:green;float:left;height:300px;width:40px;">div float</div>
  </div>
 </body>
</html>

 


免責聲明!

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



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