css浮動考點

2021-09-11 09:10:15 字數 2490 閱讀 4068

面試考點有兩種:

1、頁面效果,考察對浮動的理解。

2、清除浮動的方法。

例1:下面程式的效果圖

"en">"p1">

"p2">test

複製**

效果圖:

例2

"en">"p1">

"p2">test

複製**

效果圖:

之所以呈現出這種效果是因為浮動元素會脫離文件流,塊級元素表現的像浮動框不存在一樣,而文字會圍繞在浮動元素旁邊。

疑問:為什麼p標籤和div呈現出來的效果稍有不同?

原因:p標籤預設存在margin值,將p的margin設為0即可解決。

"en">"p1">

"p2">test

複製**

效果圖

浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另乙個浮動框的邊框為止。由於浮動框脫離文件的普通流中,所以文件的普通流中的塊框表現得就像浮動框不存在一樣。

脫標:脫離標準文件流。

貼邊:左浮動時,元素向左移動,直到它的左邊貼到包含塊的左邊緣。

字圍:文字會圍著浮動元素排開。

收縮:塊級元素設定浮動後,其寬度不再佔滿一行,而是收縮為包含內部元素的寬度即可。

例:

"en">"div1">

"div2">test

"div3">test

複製**

當#div2,#div3的 width:50px;時,div2實際上是被div1浮動完全遮蓋住了,由於設定了寬度,文字又必須圍繞浮動元素,所以文字跑到下面去了。

當#div2,#div3的 width:100px;時,div2實際上是被div1浮動遮蓋了一半,由於寬度夠放文字,文字圍繞浮動元素,所以文字在其右面。

當#div2,#div3不設定寬度時,效果如下:

例2:解釋收縮

"en">"div1">我是浮動元素

複製**

效果:

例:

"en">"parent">

"div1">

"div2">

"div3">

複製**

效果:

本想讓父容器包裹著三個浮動元素,但是浮動帶來***----父容器高度塌陷,於是清理浮動就顯著至關重要。

清除浮動不是不用浮動,清除浮動產生的父容器高度塌陷

一、給浮動元素的父元素新增高度(擴充套件性不好)

例:

#parent複製**

如果乙個元素要浮動,那麼它的父元素一定要有高度。有高度的盒子,才能關住浮動。可以通過直接給父元素設定height,實際應用中我們不大可能給所有的盒子加高度,不僅麻煩,並且不能適應頁面的快速變化;另外一種,父容器的高度可以通過內容撐開(比如img),實際當中此方法用的比較多。

法二、clear:both;

在最後乙個子元素的後面新增乙個塊級元素,然後將其設定clear:both,這樣就可以清除浮動。

例:

"parent">

"div1">

"div2">

"div3">

"wrap"/>

複製**

#wrap複製**

三、偽元素清除浮動   推薦使用

上面那種辦法固然可以清除浮動,但是我們不想在頁面中新增這些沒有意義的冗餘元素,此時如何清除浮動嗎?結合 :after 偽元素和 iehack ,可以完美相容當前主流的各大瀏覽器,這裡的 iehack 指的是觸發 haslayout

#parent

#parent:after複製**

注意:上面的**為必須有的。

四、觸發形成bfc

這種方案讓父容器形成了bfc(塊級格式上下文),而bfc可以包含浮動,通常用來解決浮動父元素高度坍塌的問題。

bfc的觸發方式

我們可以給父元素新增以下屬性來觸發bfc:

可以給父元素設定overflow:auto,但是為了相容ie最好使用overflow:hidden。

例:

#parent複製**

但這種辦法有個缺陷:如果有內容出了盒子,用這種方法就會把多的部分裁切掉,所以這時候不能使用。

總結:清除浮動的方法

css學習 css浮動

1 文件流介紹 網頁布局的核心就是利用css來擺放盒子,把盒子擺放在合適的位置。css的定位機制有以下3種 網頁布局一般需要3種搭配使用 a 普通流 標準流 b 浮動 1 浮動只有左右。2 浮動後找離他最近的父元素靠左 右對齊。3 乙個父盒子裡的子盒子,如果其中乙個子元素有浮動的話,則其他子元素都需...

css浮動和清除浮動

css樣式的float浮動屬性,用於設定標籤物件 如 標籤盒子 標籤 標籤 標籤等html標籤 的浮動布局,浮動也就是我們所說標籤物件浮動居左靠左 float left 和浮動居右靠右 float right 一般情況是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣cs...

CSS浮動和清除浮動

包裹性指的是元素尺寸剛好容納內容,表現得就像diaplay inline block一樣 具有包裹性的其他屬性 display inline block position absolute fixed sticky overflow hidden scroll會使父元素高度塌陷 為了實現文字環繞效果...