浮動和清除浮動

2021-09-01 15:33:13 字數 1849 閱讀 7355

浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另乙個浮動框的邊框為止。

由於浮動框不在文件的普通流中,所以文件的普通流中的塊框表現得就像浮動框不存在一樣。

如果包含框太窄,無法容納水平排列的三個浮動元素,那麼其它浮動塊向下移動,直到有足夠的空間。如果浮動元素的高度不同,那麼當它們向下移動時可能被其它浮動元素「卡住」:

浮動框旁邊的行框被縮短,從而給浮動框留出空間,行框圍繞浮動框。

因此,建立浮動框可以使文字圍繞影象:

要想阻止行框圍繞浮動框,需要對該框應用 clear 屬性。clear 屬性的值可以是 left、right、both 或 none,它表示框的哪些邊不應該挨著浮動框。

為了實現這種效果,在被清理的元素的上外邊距上新增足夠的空間,使元素的頂邊緣垂直下降到浮動框下面:

不幸的是,下乙個元素會受到這個浮動元素的影響。

為了解決這個問題,有些人選擇對布局中的所有東西進行浮動,然後使用適當的有意義的元素(常常是站點的頁尾)對這些浮動進行清理。

這有助於減少或消除不必要的標記。

h1標籤是塊級元素,佔據了整行,span標籤是行內元素,只佔據內容這一部分

行內元素和塊級元素的區別:(非常重要)

行內元素:與其他行內元素併排;不能設定寬、高。預設的寬度,就是文字的寬度。

塊級元素:霸佔一行,不能與其他任何元素並列;能接受寬、高。如果不設定寬度,那麼寬度將預設變為父親的100%。

塊級元素變行級元素:display: inline;

行級元素變塊級元素:display:block

標準流裡面的限制非常多,導致很多頁面效果無法實現。如果我們現在就要併排、並且就要設定寬高,那該怎麼辦呢?辦法是:移民!脫離標準流!

css中一共有三種手段,使乙個元素脫離標準文件流:

(1)浮動

(2)絕對定位

(3)固定定位

收縮:乙個浮動的元素,如果沒有設定width,那麼將自動收縮為內容的寬度(這點非常像行內元素)。

如果乙個元素要浮動,那麼它的祖先元素一定要有高度。

有高度的盒子,才能關住浮動。

浮動清除的總結

我們在上一段講了四種清除浮動的方法,本段來進行乙個總結。

浮動的元素,只能被有高度的盒子關住。 也就是說,如果盒子內部有浮動,這個盒子有高,那麼妥妥的,浮動不會互相影響。

1、加高法

工作上,我們絕對不會給所有的盒子加高度,這是因為麻煩,並且不能適應頁面的快速變化。

//設定height

//設定height

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

//clear:both;

浮動確實被清除了,不會互相影響了。但是有乙個問題,就是margin失效。兩個div之間,沒有任何的間隙了。 3、隔牆法 在兩部分浮動元素中間,建乙個牆。隔開兩部分浮動,讓後面的浮動元素,不去追前面的浮動元素。 牆用自己的身體當做了間隙。

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

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

4、overflow:hidden;

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

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

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

浮動和清除浮動

浮動的框可以向左或向右移動,直到他的外邊緣碰到包含框或另乙個浮動框的邊框為止。由於浮動框不在文件的普通流中,所以文件的普通流的塊框表現得就像浮動框不存在一樣。浮動的塊框會漂浮在文件普通流的塊框上。浮動元素引起的問題 1 父元素的高度無法被撐開,影響與父元素同級的元素。2 與浮動元素同級的非浮動元素 ...

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會使父元素高度塌陷 為了實現文字環繞效果...