WEB學習 CSS清除浮動

2022-05-12 13:06:29 字數 3041 閱讀 9612

我們本以為這些li,會分為兩排,但是,第二組中的第1個li,去貼靠第一組中的最後乙個li了。

第二個div中的li,去貼第乙個div中最後乙個li的邊了。

原因就是因為div沒有高度,不能給自己浮動的元素,乙個容器。

清除浮動方法1:給浮動的元素父控制項加高度屬性

如果乙個元素要浮動,那麼它的祖先元素一定要有高度。有高度的盒子,才能浮動屬性才能生效

只要浮動在乙個有高度的盒子中,那麼這個浮動就不會影響後面的浮動元素。所以就是清除浮動帶來的影響了。

清除浮動方法2:clear:both;

網頁製作中,高度height很少出現。因為能被內容撐高!那也就是說,剛才我們講解的方法1,工作中用的很少。

那麼如何不寫height,也把浮動清除了呢?也讓浮動之間,互不影響呢?

class="

box2

">→這個div寫乙個clear:both;屬性

clear:both;

clear就是清除,both指的是左浮動、右浮動都要清除。意思就是:清除別人對我的影響。

這種方法有乙個非常大的、致命的問題,margin失效了。

清除浮動方法3:隔牆法

class="

box1

">

class="

box2

">

.cl.h16

還有新增了「內牆法」,在div內部新增乙個 div

清除浮動方法4:overflow:hidden;

overflow就是「溢位」的意思, hidden就是「隱藏」的意思。overflow:hidden;表示「溢位隱藏」。所有溢位邊框的內容,都要隱藏掉。

本意就是清除溢位到盒子外面的文字。但是,前端開發工程師又發現了,它能做偏方。

乙個父控制項不能被自己浮動的子控制項,撐出高度。但是,只要給父控制項加上overflow:hidden; 那麼,父控制項就能被子控制項撐出高了。這是乙個偏方

div

清除浮動的總結

1

) 加高法:

浮動的元素,只能被有高度的盒子關住。 也就是說,如果盒子內部有浮動,這個盒子有高,那麼妥妥的,浮動不會互相影響。但是,工作上,我們絕對不會給所有的盒子加高度,這是因為麻煩,並且不能適應頁面的快速變化。

→ 設定height

→ 設定height

2) clear:both;法

最簡單的清除浮動的方法,就是給盒子增加clear:both;表示自己的內部元素,不受其他盒子的影響。

→ clear:both;

浮動確實被清除了,不會互相影響了。但是有乙個問題,就是margin失效。兩個div之間,沒有任何的間隙了。

3)隔牆法:

在兩部分浮動元素中間,建乙個牆。隔開兩部分浮動,讓後面的浮動元素,不去追前面的浮動元素。

牆用自己的身體當做了間隙。

class="

cl h10

">

我們發現,隔牆法好用,但是第乙個div,還是沒有高度。如果我們現在想讓第乙個div,自動的根據自己的兒子,撐出高度,我們就要想一些「小伎倆」,「奇淫技巧」。

內牆法:

class="

cl h10

">

內牆法的優點就是,不僅僅能夠讓後部分的p不去追前部分的p了,並且能把第乙個div撐出高度。這樣,這個div的背景、邊框就能夠根據p的高度來撐開了。

4)overflow:hidden;

這個屬性的本意,就是將所有溢位盒子的內容,隱藏掉。但是,我們發現這個東西能夠用於浮動的清除。

我們知道,乙個父親,不能被自己浮動的兒子撐出高度,但是,如果這個父親加上了overflow:hidden;那麼這個父親就能夠被浮動的兒子撐出高度了。這個現象,不能解釋,就是瀏覽器的小偏方。

並且,overflow:hidden;能夠讓margin生效。

瀏覽器相容問題

上述知識點遇見的瀏覽器相容問題第一,ie6,不支援小於12px的盒子,任何小於12px的盒子,在ie6中看都大

解決辦法很簡單,就是將盒子的字型大小,設定小(小於盒子的高),比如0px。height: 4px;

_font-size: 0px;

我們現在介紹一下瀏覽器hack。hack就是「黑客」,就是使用瀏覽器提供的後門,針對某一種瀏覽器做相容。ie6留了乙個後門,就是只要給css屬性之前,加上下劃線,這個屬性就是ie6認識的專有屬性。比如:

_background-color: green;

解決微型盒子,正確寫法:

height: 10px;

_font-size:0

;第二,ie6不支援用overflow:hidden;來清除浮動的

解決辦法,以毒攻毒。追加一條

_zoom:1;完整寫法:

overflow: hidden;

_zoom:1;

實際上,_zoom:

1;能夠觸發瀏覽器haslayout機制

強調一點, overflow:hidden;的本意,就是溢位盒子的border的東西隱藏,這個功能是ie6相容的。不相容的是overflow:hidden;清除浮動的時候。

我們剛才學習了兩個ie6的相容問題,這兩個ie6的相容問題,都是通過多寫一條hack來解決的。

這個我們稱為伴生屬性。

height:6px;_font-size:0;overflow:hidden;_zoom:1;

CSS清除浮動 清除float浮動

css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...

CSS清除浮動 清除float浮動

css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...

CSS清除浮動 清除float浮動

一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不能撐開,這樣浮動就產生了...