天天看點

float導緻父元素坍塌,(這裡是父元素直接下移了)

現象:子元素加float:left以後父元素div下移了

float導緻父元素坍塌,(這裡是父元素直接下移了)

原因:子元素加上float,父元素高度坍塌(我也想不通坍塌為什麼會下移)總之要麼給父元素足夠的高度,或者用其他原因撐開高度

通用的四種方法如下:

(1)給父級元素添加一個高度(不推薦)

  此方法中高度無法确認,需要多次嘗試設定,如果像我一樣沒有父元素背景顔色,随便給父元素一個高度就恢複了,但是如果涉及背景顔色且子元素高度不确定的就不友善了

  

(2)<divstyle=“clear:both;”>

  在最後一個子元素後加一個空的div,給他添加樣式clear,清除兩側浮動;這種方法也很有效,但是加了一個空的div,造成代碼的備援

  

(3)父級元素設定overflow:hidden;

  overflow有一點不好,在有下拉菜單的時候,下拉菜單會顯示不出來。

(4)父級元素添加after僞類;(推薦),

  沒有任何副作用,對檔案中的其他元素沒有任何影響,在需要防止父級邊框的元素中,給它的class值中添加clear就行了

.parent:after{

content:"";

display:block;

clear:both;

}