詳解css清除浮動(dòng)float的七種常用方法總結(jié)和兼容性處理

在清除浮動(dòng)前我們要了解兩個(gè)重要的定義:
浮動(dòng)的定義:使元素脫離文檔流,按照指定方向發(fā)生移動(dòng),遇到父級(jí)邊界或者相鄰的浮動(dòng)元素停了下來(lái)。
高度塌陷:浮動(dòng)元素父元素高度自適應(yīng)(父元素不寫高度時(shí),子元素寫了浮動(dòng)后,父元素會(huì)發(fā)生高度塌陷)
知道浮動(dòng)和為什么要清除浮動(dòng)之后我們可以開(kāi)始學(xué)習(xí)如何清除浮動(dòng)了,這時(shí)候我們就需要用到清除浮動(dòng)的屬性clear,
clear:left | right | both | none | inherit:元素的某個(gè)方向上不能有浮動(dòng)元素
clear:both:在左右兩側(cè)均不允許浮動(dòng)元素。
具體清楚浮動(dòng)的方法主要一下幾種:
1、clear清除浮動(dòng)(添加空div法)
在浮動(dòng)元素下方添加空div,并給該元素寫css樣式:
{clear:both;height:0;overflow:hidden;}
2、方法:給浮動(dòng)元素父級(jí)設(shè)置高度
我們知道了高度塌陷是應(yīng)為給浮動(dòng)元素的父級(jí)高度是自適應(yīng)導(dǎo)致的,那么我們給它的設(shè)置適當(dāng)?shù)母叨染涂梢越鉀Q這個(gè)問(wèn)題了。
缺點(diǎn):在浮動(dòng)元素高度不確定的時(shí)候不適用
3、方法:以浮制?。ǜ讣?jí)同時(shí)浮動(dòng))
何謂“以浮制浮”呢?就是**讓浮動(dòng)元素的父級(jí)也浮動(dòng)**。
缺點(diǎn):需要給每個(gè)浮動(dòng)元素父級(jí)添加浮動(dòng),浮動(dòng)多了容易出現(xiàn)問(wèn)題。
4、方法:父級(jí)設(shè)置成inline-block
缺點(diǎn):父級(jí)的margin左右auto失效,無(wú)法使用margin: 0 auto;居中了
5、 br 清浮動(dòng)
<div class="box"> <div class="top"></div> <br clear="both" /> </div>
br 標(biāo)簽自帶clear屬性,將它設(shè)置成both其實(shí)和添加空div原理是一樣的。
問(wèn)題:不符合工作中:結(jié)構(gòu)、樣式、行為,三者分離的要求。
6、給父級(jí)添加overflow:hidden 清浮動(dòng)方法;
問(wèn)題:需要配合 寬度 或者 zoom 兼容IE6 IE7;
overflow: hidden; *zoom: 1;
7、萬(wàn)能清除法 after偽類 清浮動(dòng)(現(xiàn)在主流方法,推薦使用)
選擇符:after{ content:"."; clear:both; display:block; height:0; overflow:hidden; visibility:hidden; }
同時(shí)為了兼容 IE6,7 同樣需要配合zoom使用例如:
.clear:after{content:'';display:block;clear:both;height:0;overflow:hidden;visibility:hidden;} .clear{zoom:1;}
需要注意的東西:
after偽類: 元素內(nèi)部末尾添加內(nèi)容;
:after{content"添加的內(nèi)容";} IE6,7下不兼容
zoom 縮放
a、觸發(fā) IE下 haslayout,使元素根據(jù)自身內(nèi)容計(jì)算寬高。 b、FF 不支持;
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
CSS清除浮動(dòng)float的三種方法小結(jié)
使元素脫離文檔流,按照指定方向發(fā)生移動(dòng),遇到父級(jí)邊界或者相鄰的浮動(dòng)元素停了下來(lái)。本文給大家?guī)?lái)了CSS清除浮動(dòng)float的三種方法小結(jié),感興趣的朋友跟隨腳本之家小編一起2018-03-13CSS的position定位和float浮動(dòng)詳解
本文詳細(xì)介紹了CSS中position定位和float浮動(dòng)的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-24CSS使用float屬性設(shè)置浮動(dòng)元素的實(shí)例教程
這篇文章主要介紹了CSS使用float屬性設(shè)置浮動(dòng)元素的實(shí)例教程,包括使用overflow清除浮動(dòng)的方法,需要的朋友可以參考下2016-07-07- 本文針對(duì)CSS浮動(dòng)float、定位position進(jìn)行學(xué)習(xí)理解,通過(guò)實(shí)例幫助大家掌握CSS浮動(dòng)float、定位position技巧,感興趣的小伙伴們可以參考一下2016-04-21
- 這篇文章主要介紹了css浮動(dòng)(float/clear)使用方法,如果你理解CSS盒子模型,但對(duì)于浮動(dòng)不理解,那么這篇文章可以幫助你2014-03-14
css浮動(dòng)(float,clear)通俗講解經(jīng)驗(yàn)分享
對(duì)于浮動(dòng)始終非常迷惑,可能是自身理解能力差,也可能是沒(méi)能遇到一篇通俗的教程,前兩天終于搞懂了浮動(dòng)的基本原理,迫不及待的分享給大家,感興趣的朋友可以參考下哈,希望2013-03-28html/css中float浮動(dòng)的用法實(shí)例詳解
這篇文章主要介紹了html/css中float浮動(dòng)的用法實(shí)例詳解,需要的朋友可以參考下2019-09-10