美文网首页
css margin

css margin

作者: JamesSawyer | 来源:发表于2017-05-11 15:58 被阅读16次
    1. margin值只对内联元素(inline-block)块状元素(block)有效,对于 inline元素是无效的
    2. margin collapse 折叠的情况
    • 垂直相邻的 margin 才有可能折叠,水平 margin 永远不折叠
    • 根元素(即 html 元素)的 margin 永远不折叠
    • 如果一个元素,它的 top margin 和 bottom margin 是相邻的,并且有清除浮动后的空隙(clearance),这个元素的 margin 可以跟兄弟元素的 margin 折叠,但是折叠后的 margin 不能跟父元素的 bottom margin 折叠。
    1. 折叠后的距离计算:
    • 如果 margin 都是正数,则取他们当中的最大值
    • 如果 margin 中有正有负,则取最大的正数加上最小的负数(如最大的 margin 是 20px,最小的 margin 是 -20px,则他们计算后的值是 0)
    • 如果 margin 中都是负数,则取他们当中的最小值

    几种特殊情况

    1.浮动、定位元素的 margin 不会和其他任何元素的 margin 发生重叠,包括它的子元素。

    这是因为浮动元素脱离了正常流,所以它和其他相邻元素就不处与同一个流中,自然不相邻;又因为浮动元素的内容盒会形成一个新的 BFC,所以浮动元素跟子元素不处与同一个 BFC 中,因此它们的 margin 也不能折叠。定位元素同理可得

    2.inline-block 的元素不会和其他元素的 margin 发生折叠,包括它的子元素

    因为 margin 折叠只会发生在块级元素上,因此 inline-block 元素的 margin 不会和兄弟元素折叠,又因为 inline-block 的内容盒会形成一个新的 BFC,所以 inline-block 元素本身也不会和子元素的 margin 发生折叠

    如图: #a, #b 均为 inline-block, 他们之间没有发生折叠


    inline-block.png

    coding.net具体

    相关文章

      网友评论

          本文标题:css margin

          本文链接:https://www.haomeiwen.com/subject/ttwotxtx.html