css之清除浮動

2022-08-23 13:24:18 字數 2766 閱讀 5586

使元素脫離文件流,按照指定的方向(左或右發生移動),直到它的外邊緣碰到包含框或另乙個浮動框的邊框為止。

文件流:文件流是文件中可顯示物件在排列時所占用的位置/空間,而脫離文件流就是在頁面中不佔位置了。

浮動float最開始出現的意義是為了讓文字環繞,後來浮動在網頁的布局中應用比較廣泛,讓塊級元素併排顯示。

並不是所有的浮動都需要清除,影響布局才需要清除

清除浮動主要是為了解決:父元素因為子元素浮動引起的內部高度為0的問題。

清除浮動本質叫做閉合浮動。就是把浮動的盒子圈到裡面,讓父盒子閉合出口和入口不讓他們出來影響其他元素。

1.這個例子後面可能繼續往這個招聘模組加職位,所以沒有給父盒子新增高度,子盒子預設撐開父盒子

2.給子盒子新增浮動後

可以分為兩大類:

1.使用clear屬性

2.通過觸發bfc來實現。

清除了浮動,會自動檢測孩子高度,以最高的為準

結尾空元素或者after等偽元素或者其他標籤br,利用 css 提供的 clear:both 清除浮動,讓父級 div 能自動獲取高度。

1. 額外標籤法:在最後乙個浮動的子元素後面額外新增乙個空白標籤(必須是塊級元素獨佔一行),給其設定clear:both ;(不推薦使用)

clear:both:本質就是閉合浮動, 就是讓父盒子閉合出口和入口,不讓子盒子出來

優點:通俗易懂,書寫方便。

缺點:新增許多無意義的標籤,結構化比較差。

2. after偽元素法:使用after偽元素和zoom清除浮動;額外標籤法的公升級版,好處是不用單獨加標籤了。(較常用,給父盒子新增類clearfix)

優點:符合閉合浮動思想,結構語義化正確

缺點:ie6/ie7不識別:after偽元素,存在相容性問題,使用zoom:1,觸發haslayout。

3. 雙偽元素法:使用before和after雙偽元素清除浮動(較常用,給父盒子新增clearfix)

display:table; /* 這句話可以觸發bfc bfc可以清除浮動 */

1. 父元素新增overflow:hidden、auto、scroll

可以通過觸發bfc的方式,實現清除浮動效果。

優點:**簡潔(慎重使用,若該父盒子裡還有position定位會引起麻煩)

缺點:內容增多時候容易造成不會自動換行導致內容被隱藏掉,無法顯示需要溢位的元素

還有其他觸發bfc方式,只要滿足下述4個css條件之一就行

bfc觸發條件:

乙個html元素要建立bfc,則滿足下列的任意乙個或多個條件即可:

1、float的值不是none。

2、position的值不是static或者relative。(absolute,fixed)

3、display的值是inline-block、table-cell、flex、table-caption或者inline-flex

4、overflow的值不是visible(hidden,auto,scroll )

在父盒子中新增類似 overflow: scroll,overflow: hidden,display: flex,float: left,或 display: table 的規則來顯示建立bfc。但會有一些***:

1、display: table 可能引發響應性問題

2、overflow: scroll 可能產生多餘的滾動條

3、float: left 將把元素移至左側,並被其他元素環繞

4、overflow: hidden 將裁切溢位元素

什麼是bfc

塊級格式化上下文 (block fromatting context)bfc:塊級格式化上下文,它是指乙個獨立的塊級渲染區域,只有block-level box參與,該區域擁有一套渲染規則來約束塊級盒子的布局,且不會在布局上影響外面的元素。

在乙個web頁面的css渲染中,塊級格式化上下文

(block fromatting context)是按照塊級盒子布局的。

CSS之清除浮動

標籤可以是div br hr 在浮動元素後使用乙個空元素如 並在css中賦予.clear屬性即可清理浮動。亦可使用 或來進行清理。優點 簡單,少,瀏覽器相容性好。缺點 需要新增大量無語義的html元素,不夠優雅,後期不容易維護。在浮動元素下加 clear,但是在ie6下,塊元素有最小高度,即當hei...

CSS之清除浮動

一 清除浮動的目的。1 當乙個父元素的高度不寫或為auto時,而且這個父元素內又有浮動的子元素,那麼這時候該父元素的高度將不會自動適應子元素的高度,也可以說高度是0px 有如下 123123 此 父元素高度不設定,而且裡面又有左浮動高度為300px的子元素。實際顯示效果為 可以看到,父div僅僅顯示...

css之清除浮動

清除浮動 在非ie瀏覽器 如firefox 下,當容器的高度為auto,且容器的內容中有浮動 float為left或right 的元素,在這種情況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢位到容器外面而影響 甚至破壞 布局的現象。這個現象叫浮動溢位,為了防止這個現象的出現而進行的css處...