css清除浮动问题

请问取消了header的clearfix属性后,为什么会出现图中中间的黑色区域,也就是p标签的margin
图片描述

代码在这里

http://runjs.cn/code/kfkhq9ki

阅读 3.6k
7 个回答

题主是想问发生这个现象的原理吧。

加了clearfix会创建一个BFC,容器里面的元素不会影响到外面的元素,而p里面的margin-bottom也是属于容器的,所以会包含进容器里面。反之去掉以后就没有创建BFC,里面的元素可能会影响到外部元素。

css 47行 设置了 p{margin:0 0 9px 0}

p{
    margin:0 0 9px 0;
}

这段代码设置了下间距

我好奇的是加了clearfix后p的margin值失效了,而且整个header高度增加了

因为header被撑开了,连同pmargin一块儿包裹了,overflow:auto/hidden;也可以达到同样的效果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题