CSS清楚浮動

2022-08-15 19:54:21 字數 1668 閱讀 3769

浮動是乙個有意思(你也可以說它很麻煩)的css屬性,任何元素設定了浮動,層級就提高了,會影響它後面沒設定浮動的元素,這些倒霉的被影響者會跑到浮動層的下面去(當然ie6、ie7除外),**看起來是這樣:

因為設定了浮動的元素會提高層級,所以如果乙個平淡無奇的父級元素(沒有設定浮動或別的提高層級的屬性)居然包住了乙個浮動的傢伙,並且這個父級還沒有設定高,那它就悲催了,因為父級沒法包住它的子級浮動元素(當然ie6、ie7又除外):

那怎麼樣才能讓父級包住浮動層呢?1. 在浮動層下,設定空div,**如下:

說明:

clear: both;可以讓元素不受到浮動層影響,排到浮動層的底下,

而父級可以包住最底下這個空div,這樣看起來,它似乎也就包住那個浮動層了,

其實是障眼法哈~

缺點:ie6下會多出1畫素來,並且設定了無語義的空div;

2. 在父級設定:overflow: hidden;

說明:overflow: hidden; 用它是為了提高父級的層級,層級提高了,自然能包住子級浮動元素了。

缺點:要是父級裡面有什麼元素居然飄到父級以外的地方,那就悲劇了,例如很多js的提示層效果,

就不能用 overflow: hidden;

3. 在父級設定:float

說明:父級包不住浮動層,因為層級不夠,那父級也設定float好嘍

缺點:父級如果也有父級,也要設定浮動,那用這種方法,一路浮動到body那兒才算完事兒~~呃。。此方法本身就很滑稽

4. 在父級設定:display: inline-block;

說明:inline-block; 是乙個不相容的屬性,但用在這裡只是為了提高父級層級,

如此一來,可以完全忽略它的不相容性哈~

缺點:設定不了元素居中:margin-left: auto; margin-right: auto;

你可以在不需要居中的元素上使用這方法哈~

5. 父級如果是絕對定位:position: absolute;

說明:要說層級,那絕對定位必定是老大,在絕對定位眼中,小小的浮動也居然敢稱層級??

缺點:position: absolute;會影響布局,它是相對父級的塊元素為參照物進行定位,

完全不按文件流的方式走,呵呵,所以如果你要是在絕對定位的元素裡設定浮動,那就盡情設定吧,

不必理會任何浮動神馬的,因為在絕對定位下,浮動啥的,真的是浮雲了~

6. 給浮動層下設定:

7. 給父級加上這行吧:

.clear:after

說明::after 是乙個很好用的屬性,有了它,可以往任何元素裡插入字串、空格啦,'.'之類的,

但可惜,ie6,ie7不認識:after,不過,又有什麼關係呢?

反正ie6\ie7的父級能包住浮動層,所以不必管它們嘍~

忘了解釋了,先給浮動層底下插入乙個空格(content: '\20';),再把這個空格轉成塊元素,並且清除浮動層的影響,讓父級包住這個空格,也是障眼法哈~

CSS清楚浮動clear both

今天給大家講一下清楚浮動,在講清除浮動前,需要了解什麼是浮動,這裡我就不給你大家詳細介紹浮動了。浮動也就是脫離文件流,脫離文件流了,那父級的寬高就不能被子集撐開,所以我們就需要清楚浮動,廢話不多說,我們上 從這裡我們可以看到,自己用了浮動,父級的寬高就不能被子集撐開,這樣的話布局就會和你想象的不一樣...

CSS 定位5 清楚浮動

一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。1 背景不能顯示 由於浮動產生,如果對父級設定了 css background背景 css背景顏色或css背景,而父級不能被撐開,所以導致css背景不能顯示。2 邊框不能撐開 如上圖中,...

css 清楚浮動的幾種方式

方法一 使用clear屬性的空元素 方法二 使用overflow屬性 給浮動的元素容器新增overflow hidden auto 在新增overflow屬性後,浮動元素又回到了容器層,把容器層撐起來,達到清理浮動的效果 另外在 ie6 中還需要觸發 haslayout 例如為父元素設定容器寬高或設...