清除浮動的四種方法


html代碼

1 <body>
2     <section>
3         <img src="sea.png" alt="sea">
4         <p>圖片標題</p>
5     </section>
6     <footer>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmodtempor incididunt ut labore et dolore magna aliqua. </footer>
7 </body>

CSS代碼

 1 p{
 2     margin:0;
 3 }
 4 img{
 5     float:left;
 6 }
 7 section{
 8     border:1px solid green;    
 9     margin:0 0 10px 0;
10 }
11 footer{
12     background-color: #ccc;
13 }

效果圖:

下面介紹的圍住浮動元素的方法,最終達成的效果都是:

方法一:為父元素添加 overflow:hidden   

1 section{
2     border:1px solid green;    
3     margin:0 0 10px 0;
4  overflow: hidden;
5 }

//overflow:hidden聲明的真正用途是

//1.防止包含元素被超大內容撐大。應用overflow:hidden之后,包含元素依然保持其特定的寬度,而超大的子內容則會被容器剪切掉;

//2.它能可靠地迫使父元素包含其浮動的子元素。

方法二:同時浮動父元素

 1 section{
 2     border:1px solid green;
 3     margin:0 0 10px 0;    
 4  width:100%;
 5  float:left;
 6 }
 7 footer{
 8     background-color: #ccc;
 9  clear:left;
10 }

  缺點:margin左右auto居中失效。

方法三:添加非浮動的清除元素

  給父元素添加一個子元素,然后對該子元素應用clear樣式。其中有三種方案。

  第一種:

  簡單地在HTML中添加一個子元素div。

1 <body>
2     <section>
3         <img src="sea.png" alt="sea">
4         <p>圖片標題</p>
5         <div class="clear"></div>
6     </section>
7     <footer>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod</footer>
8 </body>

   在此,為div添加了一個類,以便於在CSS中寫樣式。

1 div.clear{
2     clear:left;
3 }

  第二種:

  如果你不想添加這個純表現性的元素,有一個更好的方法——after偽類。

  首先為section添加一個類clearfix

1 <section class="clearfix">
2     <img src="sea.png" alt="sea">
3     <p>圖片標題</p>
4 </section>
5 <footer>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod</footer> 

  然后,再使用這個神奇的clearfix規則

1 .clearfix:after{
2     content:".";
3     display:block;
4     height:0;
5     visibility:hidden;
6     clear:both;
7 }

  //這個clearfix規則最早是由程序員Tony Aslett發明的,它只添加了一個清除的包含句點作為非浮動元素。

  第三種

  <br/>標簽清除浮動

1 <body>
2      <section>
3          <img src="sea.png" alt="sea">
4          <p>圖片標題</p>
5          <br clear="all"/>
6      </section>
7     <footer>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmodtempor incididunt ut labore et dolore magna aliqua. </footer>
8 </body>

  缺點:不符合工作中結構、樣式、行為三者分離的要求。

方法四:inline-block清除浮動

1 section{
2  display:inline-block;
3 }

  缺點:margin左右auto居中失效。

 

 

 

 

  

 


免責聲明!

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



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