學習筆記 css中清除浮動

2021-08-07 10:59:33 字數 2114 閱讀 1521

1.浮動使元素脫離文件流。

2.浮動的元素可以設定寬高,在 css 中,任何元素都可以浮動。浮動元素會生成乙個塊級框,而不論它本身是何種元素。

3.如果沒有給浮動元素指定高度,那麼它會以內容的高度為自己的高度,並且盡可能的窄。

4.浮動的元素因為脫離了文件流,所以不能把父元素撐出高度。

5.浮動框脫離了文件流,所以文件裡的其他普通的塊框會表現得像浮動框不存在一樣。

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

7.浮動多用於與文字的環繞處理。給含有的div設定浮動,會浮動,而段落不浮動,效果是文字環繞。

先看一張圖

html內容:

class="outer">

class="div1">111

div>

class="div2">222

div>

class="div3">333

div>

div>

樣式表:

.outer

.div1

.div2

.div3

1.給父元素設定高度(大於子元素)。

可行。但是在網頁設計中,我們一般都不會直接給父元素設定高度,而是採用由子元素撐開高度的方式來,所以有侷限性。

2.給父元素新增 overflow:hidden|auto 屬性。

.outer

overflow這裡一共有三個屬性,分別是auto|hidden|visible,可以使用auto或者hidden,但visible一定不能使用,達不到清除浮動的效果。

什麼意思呢,請看

.outer

.div1

.div2

.div3

.null

ps: zoom:1;是為了處理瀏覽器相容問題

class="outer">

class="div1">111

div>

class="div2">222

div>

class="div3">333

div>

class="null">div>

div>

因為新增的 null 塊裡面並沒有內容,也沒有寬高,所以不會對頁面元素產生其他影響。

效果當然是去除了浮動。

如果對:after有疑惑的請戳學習筆記—css中偽類與偽元素,在這篇文章中,我簡單的總結了下偽類偽元素的區別用法。

回到本文:

我們給父元素.outer新增:after偽類,設定樣式

.outer

.div1

.div2

.div3

.outer

:after

html中沒有新增任何新元素

class="outer">

class="div1">111

div>

class="div2">222

div>

class="div3">333

div>

div>

這個的原理其實和上面的方法三是同理的,但是利用了:after的特性,直接在父元素後面新增乙個塊,內容為空,樣式隱藏,再對其設定clear:both,達到清除浮動的樣式。

這種方法在網上頗為流行,因為不會在dom結構中新增新元素相比方式三更為優化。

清除浮動的方式很多,選擇哪個也因人而異,我自己而言,更偏好最後一種,因為不用新增新的元素內容,並且我們又鞏固了一種:after的用法了呀

css浮動清除筆記

1.在文件流中內容的高度可以撐起父元素的高度 2.在浮動流中浮動的元素是不可以撐起文件流父元素的高度 如果父元素也是浮動的就可以 可以看到將p元素設定浮動之後,並沒有撐起父元素div 我是文字1 我是文字1 我是文字1 我是文字2 我是文字2 我是文字2 根據浮動排列的規則和浮動不能撐起父元素的高度...

css學習筆記之浮動清除

說到浮動,不得不說一下bfc block formatting context 翻譯為 塊級格式化上下文 關於bfc的原理,我參考了此篇文章,bfc參考資料 大家有需要可以去看看。清除浮動 子層 底部 這種方法雖直接讓底部的div擠到下方,並沒有真正的清除浮動,但可以達到清除浮動的效果。清除浮動 子...

前端學習筆記 CSS 清除浮動

我們前面說過,浮動本質是用來做一些文字混排效果的,但是被我們拿來做布局用,則會有很多的問題出現,但是,你不能說浮動不好 由於浮動元素不再占用原文件流的位置,所以它會對後面的元素排版產生影響,為了解決這些問題,此時就需要在該元素中清除浮動。準確地說,並不是清除浮動,而是清除浮動後造成的影響 如果浮動一...