1.三個已經混淆的概念
(1)不浮動float:none;
(2)清除周圍的浮動元素
(3)清除子元素浮動對父元素的影響
2.什麼是清除浮動
清除浮動不是把當前標籤的浮動給清楚了,如果這樣,還加浮動做什麼。
其實清除浮動指的是清除當前元素旁邊的浮動元素,但是當前元素又不能影響別人,打不贏就跑,所以自己就跑到下面去了。
3.為什麼要清楚浮動
在布局的時候我們經常希望某些內容能夠水平排布,水平排布後,由於內部內容不確定,高度不能簡單的給乙個定值。而如果不給高度,子元素又都浮動了,父盒子就會因為沒有子盒子的支援而塌陷。
利用清除浮動的這個特性,我們可以給父元素中最後乙個不浮動的盒子使用clear:both從而把父盒子的高度撐起來,並且能夠根據內部內容的變化而改變高度。
4.清除浮動的方法
(1)額外標籤法
原理:單獨使用乙個標籤加上clear:both跑到浮動元素下面,從而消除子盒子浮動造成的父盒子塌陷。
典型**:京東
優點:通俗易懂,容易掌握
缺點:新增很多無意義的空標籤,不符合結構與表現分離的原則,不利於後期的維護。
(2)父元素設定overflow:hidden
原理:讓父盒子形成bfc,bfc的特性之一就是可以承載浮動元素
優點:不存在結構和語義化問題,**量極少。
缺點:內容增多時候不會自動換行導致內容被隱藏掉,無法顯示需要溢位的元素。
bfc(block formatting content)快格式化上下文,是w3c規定的一種獨立渲染區域。
其特性為:
總而言之,就是獨立了。
哪些情況會觸發bfc
(3)單偽元素
.clearfix:after /*在內部元素的前面和後面新增元素*/
.clearfix:after /*只要after兩側有浮動元素,after就會跑到最下面,從而撐開帶有該類名的父盒子*/
.clearfix {
*zoom: 1;/*用於相容ie/7/6*/
用display:table是因為display:block有空隙
加了乙個before是為了防止外邊合併
典型**:小公尺、**
CSS清除浮動專題
w3c規範推薦在容器底部新增乙個clear both的元素 網路上流行的說法是 在非ie瀏覽器 如firefox 下,當容器的高度 height 為auto,且容器的內容中有浮動 float為left或right 的元素,在這種情況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢位到容器外面而...
浮動 清除浮動
在css布局中分為內聯元素 display inline 和塊狀元素 display block 塊狀元素缺省會佔據一行,可設定高度寬度以及邊距,而內斂元素不會也不能設定。常見的內斂元素有 a span input select,常見的塊狀元素有 h1 h6,p,div,ul,table。浮動元素是...
CSS清除浮動 清除float浮動
css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...