现象:子元素加float:left以后父元素div下移了
原因:子元素加上float,父元素高度坍塌(我也想不通坍塌为什么会下移)总之要么给父元素足够的高度,或者用其他原因撑开高度
通用的四种方法如下:
(1)给父级元素添加一个高度(不推荐)
此方法中高度无法确认,需要多次尝试设置,如果像我一样没有父元素背景颜色,随便给父元素一个高度就恢复了,但是如果涉及背景颜色且子元素高度不确定的就不方便了
(2)<divstyle=“clear:both;”>
在最后一个子元素后加一个空的div,给他添加样式clear,清除两侧浮动;这种方法也很有效,但是加了一个空的div,造成代码的冗余
(3)父级元素设置overflow:hidden;
overflow有一点不好,在有下拉菜单的时候,下拉菜单会显示不出来。
(4)父级元素添加after伪类;(推荐),
没有任何副作用,对文件中的其他元素没有任何影响,在需要防止父级边框的元素中,给它的class值中添加clear就行了
.parent:after{
content:"";
display:block;
clear:both;
}