包裹性指的是元素尺寸剛好容納內容, 表現得就像diaplay:inline-block一樣
具有包裹性的其他屬性:
display:inline-block
position:absolute/fixed/sticky
overflow:hidden/scroll
會使父元素高度塌陷——為了實現文字環繞效果
具有破壞性的其他屬性:
display:none
position:absolute/fixed/sticky
清除浮動方法大致有兩類,一類是clear:both | left | right ,另一類則是建立bfc,細分又可以分為多種。
通過在浮動元素末尾新增乙個空的標籤例如並設定樣式為clear:both | left | right ,其他標籤br等亦可。
優點:簡單。
缺點:增加了額外的標籤,並且很顯然這並不符合語義化。
*使用 br標籤和其自身的 html屬性,br 有 clear=all | left | right | none;的屬性。
優點:簡單**量少,比空標籤語義化稍好。
缺點:同上。
使用::after偽元素(萬金油方法)
ps:由於ie6-7不支援:after,使用`zoom:1觸發haslayout。其實是通過 content 在元素的後面生成了內容為空的塊級元素
**如下
.clearfix:after
.clearfix
優點:結構和語義化完全正確,**量居中。
缺點:復用方式不當會造成**量增加。
偽元素還有一種寫法
// 用display:table 是為了避免外邊距margin重疊導致的margin塌陷, 內部元素缺省會成為 table-cell 單元格的形式
.clearfix:before, .clearfix:after
.clearfix:after
.clearfix
父元素設定 overflow:hidden,(ps:在ie6中還需要觸發 haslayout ,例如 zoom:1)
優點:不存在結構和語義化問題,**量極少。
缺點:由於hidden的原因,當內容增多時候容易造成不會自動換行導致內容被隱藏掉,無法顯示需要溢位的元素,還會導致中鍵失效(滑鼠中鍵)。
父元素設定 overflow:auto 屬性
優點:同上
缺點:多個巢狀後,會有bug,詳情看原文。
父元素也浮動
優點:**少
缺點:總不能一直浮動到body吧。
父元素設定display:table
優點:結構語義化完全正確,**量極少。
缺點:會造成盒模型的改變。
css浮動和清除浮動
css樣式的float浮動屬性,用於設定標籤物件 如 標籤盒子 標籤 標籤 標籤等html標籤 的浮動布局,浮動也就是我們所說標籤物件浮動居左靠左 float left 和浮動居右靠右 float right 一般情況是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣cs...
CSS浮動和清除浮動
一 浮動 float left,元素脫離文件流,向左移動,直到碰到包含框或者另乙個浮動元素的左側 或float right,元素脫離文件流,向右移動,直到碰到包含框或者另乙個浮動元素的右側 二 清除浮動 clear left right both 正確的解釋應該是 對於元素a設定屬性clear le...
css 浮動和清除浮動
用浮動布局的時候我們必須要巢狀乙個父級盒子,分為以下兩種情況 1 有些父級盒子能夠設定固定的高度,一定要設定 2 有些頁面由於頁面的需要不能給父級盒子設定高度,所以子元素浮動之後脫離了文件流,父級盒子不會被撐開,會影響我們後面的布局,所以要清除浮動的影響 父級盒子因為子級浮動引起內部高度為0的問題,...