如题:css布局时,普通文档流中块框的垂直外边距为什么会发生叠加?这是浏览器解析的问题吗?
是由一个叫BFC(Block formatting context)的东西引起的。
BFC的布局规则:
•内部的Box会在垂直方向,一个接一个地放置。
•Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠
•每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
•BFC的区域不会与float box重叠。
•...
触发BFC的情况:
•根元素
•float属性不为none
•position为absolute或fixed
•display为inline-block, table-cell, table-caption, flex, inline-flex
•overflow不为visible
你要避免相邻块元素外边距重叠的话,那你就要避免产生BFC。
参考:http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。