使元素脫離文件流,按照指定的方向(左或右發生移動),直到它的外邊緣碰到包含框或另乙個浮動框的邊框為止。
文件流:文件流是文件中可顯示物件在排列時所占用的位置/空間,而脫離文件流就是在頁面中不佔位置了。
浮動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處...