頁面塌陷解決方案大集合

2021-10-05 07:14:49 字數 1766 閱讀 7326

因為父級盒子很多情況下,不方便給高度,但是子盒子浮動就不占有位置,最後父級盒子高度為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屬性...