因為父級盒子很多情況下,不方便給高度,但是子盒子浮動就不占有位置,最後父級盒子高度為0,就影響了下面的標準流盒子。
清除浮動主要為了解決父級元素因為子級浮動引起內部高度為0 的問題。清除浮動之後, 父級就會根據浮動的子盒子自動檢測高度。父級有了高度,就不會影響下面的標準流了
選擇器 clear 清除
屬性值
描述left
不允許左側有浮動元素(清除左側浮動的影響)
right
不允許右側有浮動元素(清除右側浮動的影響)
both
同時清除左右兩側浮動的影響
一般只用 clear: both;
1).額外標籤法(隔牆法)
是w3c推薦的做法是通過在浮動元素末尾新增乙個空的標籤例如
style
=」clear:both」
>
div>
,或則其他標籤br等亦可。2).父級新增overflow屬性方法
可以給父級新增: overflow為 hidden| auto| scroll 都可以實現。
優點: **簡潔
缺點: 內容增多時候容易造成不會自動換行導致內容被隱藏掉,無法顯示需要溢位的元素。
3).使用after偽元素清除浮動
:after 方式為空元素額外標籤法的公升級版,好處是不用單獨加標籤了
使用方法:
.clearfix:after
.clearfix
/* ie6、7 專有 */
4).使用雙偽元素清除浮動
使用方法:
.clearfix:before,.clearfix:after
.clearfix:after
.clearfix
父級沒高度
子盒子浮動了
影響下面布局了,我們就應該清除浮動了。
清除浮動的方式
優點缺點
額外標籤法(隔牆法)
通俗易懂,書寫方便
新增許多無意義的標籤,結構化較差。
父級overflow:hidden;
書寫簡單
溢位隱藏
父級after偽元素
結構語義化正確
由於ie6-7不支援:after,相容性問題
父級雙偽元素
結構語義化正確
由於ie6-7不支援:after,相容性問題
使用margin定義塊元素的垂直外邊距時,可能會出現外邊距的合併。
(1). 相鄰塊元素垂直外邊距的合併
解決方案:盡量給只給乙個盒子新增margin值。
(2). 巢狀塊元素垂直外邊距的合併(塌陷)
解決方案:
可以為父元素定義上邊框。
可以為父元素定義上內邊距
可以為父元素新增overflow:hidden。
marign塌陷解決方案
在標準文件流中,豎直方向的margin會出現疊加現象 水平方向不會塌陷 兩個margin緊挨著,中間沒有border或者padding margin直接接觸,就產生了合併 表現為較大的margin會覆蓋掉較小的margin,豎直方向的兩個盒子中間只有乙個較大的margin,這就是margin塌陷現象...
超大集合key獲取value速度慢的解決方式
集合key獲取速度慢的解決方式 1,使用pop命令每次獲取並刪除固定數量 2,使用有序集合每次獲取固定排序範圍的集合 有順序要求的key 3,key hash 分桶的處理 分散到多個key儲存 方式一對應的 public void dealredis string posmenuversion,st...
CSS盒子塌陷問題解決方案
什麼是盒子塌陷?外部盒子本應該包裹住內部的浮動盒子,結果卻沒有。問題出現的原因 父元素只包含浮動元素,那麼它的高度就會塌縮為零 前提就是你們沒有設定高度 height 屬性,或者設定了為auto,就會出現這種情況,如果父元素不包含任何的可見背景,這個問題會很難被注意到。因為子元素設定了float屬性...