开发者社区> 问答> 正文

css布局时,普通文档流中块框的垂直外边距为什么会发生叠加?

如题:css布局时,普通文档流中块框的垂直外边距为什么会发生叠加?这是浏览器解析的问题吗?

展开
收起
a123456678 2016-05-26 17:17:57 1790 0
1 条回答
写回答
取消 提交回答
  • 是由一个叫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。

    2019-07-17 19:16:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
零基础CSS入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载