CSS如何清除浮動的方法和優缺點
介紹清除浮動之前,首先介紹一下為什麼要清除浮動。元素浮動之後可以左右移動,直到遇到父元素的邊緣或者另一個浮動元素,浮動元素會脫離文件流對塊級元素的佈局沒有影響,但對內聯元素和文字有影響。例如,當一個父元素的子元素浮動之後,脫離文件流,導致父元素塌陷,例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> .parent{border:2px solid green;} .children{ width:100px; height:100px; background-color:red; float:left; } </style> </head> <body> <div class="parent"> <div class="children"></div> </div> </body> </html>
子元素由於使用浮動,脫離文件流,那麼不會對父元素的佈局產生影響,導致父元素塌陷。由此可見清除浮動是必須的;下面介紹一下清除浮動的幾種方式:
方式一:
新增額外的標籤:
此方式在浮動元素的末尾新增一個空標籤,例如:
[HTML] 純文字檢視 複製程式碼<div style="clear:both"></div>
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> .parent{border:2px solid green;} .children{ width:100px; height:100px; background-color:red; float:left; } </style> </head> <body> <div class="parent"> <div class="children"></div> <div style="clear:both"></div> </div> </body> </html>
優點是比較簡單,容易理解掌握;缺點是新增了額外的標籤,不符合內容表現分類原則。
方式二:
利用<br/>標籤自帶的clear屬性清除浮動,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> .parent{border:2px solid green;} .children{ width:100px; height:100px; background-color:red; float:left; } </style> </head> <body> <div class="parent"> <div class="children"></div> <br clear="all"/> </div> </body> </html>
在浮動元素的後面新增<br>標籤,將clear屬性值設定為all。
優點是程式碼比較少,缺點是也增加的了額外的標籤,不利於表現和內容分離原則。
方式三:
將父元素的overflow屬性值設定為auto或者hidden,IE6並不支援此方式,需要出發IE6的haslayout屬性才可以。
例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> .parent{ border:2px solid green; overflow:hidden; *zoom:1; } .children{ width:100px; height:100px; background-color:red; float:left; } </style> </head> <body> <div class="parent"> <div class="children"></div> </div> </body> </html>
overflow:hidden對IE6並沒有清除浮動的功能,所以需要觸發IE6的haslayout屬性,新增*zoom:1即可。
優點是沒有增加額外的標籤,並且程式碼量也不多,缺點是可能會導致一些意外的效果,需要對頁面多加測試。
方式四:
將父元素設定浮動,例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> .parent{ border:2px solid green; float:left; } .children{ width:100px; height:100px; background-color:red; float:left; } </style> </head> <body> <div class="parent"> <div class="children"></div> </div> </body> </html>
優點是沒有新增額外標籤,程式碼簡短,但是容易破壞佈局結構。
方式五:
使用:after清除浮動,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> .parent{border:2px solid green;} .parent:after{ content:"."; display:block; height:0; visibility:hidden; clear:both; } .parent{*zoom:1;} .children{ width:100px; height:100px; background-color:red; float:left; } </style> </head> <body> <div class="parent"> <div class="children"></div> </div> </body> </html>
以上程式碼中使用:after可以清除浮動,但是IE6和IE7不支援此屬性,所以需要使用*zoom:1相容IE6和IE7。
這是最為推薦的清除浮動的方式。
相關文章
- CSS清除浮動方法大全CSS
- CSS清除浮動的四種方法CSS
- css清除浮動CSS
- CSS 清除浮動CSS
- CSS——清除浮動CSS
- CSS 浮動(Float) 清除浮動CSS
- css清除浮動的原理CSS
- CSS-清除浮動CSS
- CSS清除浮動大全共8種方法CSS
- 清除浮動的方法
- 前端入門-day3(CSS中浮動和清除浮動)前端CSS
- css 盒模型 文件流 幾種清除浮動的方法CSS模型
- css清除浮動float的七種常用方法總結CSS
- css3 清除浮動的方式CSSS3
- 談談浮動和清除浮動?
- 直播平臺製作,css之如何清除浮動CSS
- 幾種有效的清除浮動的方法
- CSS 小結筆記之清除浮動CSS筆記
- 為什麼會出現浮動和什麼時候需要清除浮動?清除浮動的方式?
- 清除浮動
- 如何使用BFC清除CSS浮動以及解決margin合併的問題CSS
- CSS + HTML 小知識點大雜燴(margin合併、塌陷,清除浮動)CSSHTML
- 繼承的優點和缺點繼承
- CSS深入理解:overflow:hidden——溢位,坍塌,清除浮動CSS
- 深入清除浮動原理
- css實現三欄佈局的幾種方法及優缺點CSS
- HTTP和RPC的優缺點HTTPRPC
- 清除浮動與閉合浮動區別
- PyLint 的優點、缺點和危險
- 好程式設計師web前端學習路線分享CSS浮動-清除浮動篇程式設計師Web前端CSS
- 什麼是浮動?浮動帶來的影響?怎麼清除浮動?
- iframe有哪些優點和缺點?
- 資料互動——Promise、Ajax、axios和fetch的優缺點PromiseiOS
- mixins和元件的區別和優缺點元件
- 請列舉幾種可以清除浮動的方法(至少兩種)
- hash解決衝突的方法優缺點
- H5-28 清除浮動H5
- 執行緒和程式的優缺點執行緒
- 清除浮動的幾種方式及其原理