•  

  •   

    CSS Code复制内容到剪贴板

    1. .container {   

    2.   width: 300px;   

    3.   height: 300px;   

    4.   margin-bottom: 10px;   

    5.   background-color: lightpink;   

    6. }   

    7. .an-container {   

    8.   width: 300px;   

    9.   height: 300px;   

    10.   margin-top: 10px;   

    11.   background-color: lightgreen;   

    12. }  

    CSS的margin属性知识总结

    3.2.2:父子元素的 margin 重叠

    两个或多个外边距没有被非空内容、padding、border 或 clear 分隔开

    这些 margin 都处于普通流中。

    margin-top 重叠:在没有被分隔的情况下,一个元素的 margin-top 会和它普通流中的第一个子元素(非浮动元素等)的 margin-top 相邻。

    XML/HTML Code复制内容到剪贴板

    1.   

    2.               

    3.           

    CSS Code复制内容到剪贴板

    1. .container {   

    2.   width: 150px;   

    3.   margin-top: 10px;   

    4.   background-color: lightpink;   

    5. }   

    6. .container .an-container {   

    7.   background-color: lightgreen;   

    8.   width: 100px;   

    9.   height: 100px;   

    10.   margin-top: 10px;   

    11. }  

    CSS的margin属性知识总结

    margin-bottom 重叠:在没有被分隔的情况下,只有在父元素的 height 是 "auto" 的情况下,它的 margin-bottom 才会和它普通流中的最后一个子元素(非浮动元素等)的 margin-bottom 相邻。就是说,父元素的height值不能是固定高度值。如果父元素固定高度,那么margin-bottom会无效的。代码同上。

    3.2.3:元素自身的 margin-bottom 和 margin-top 相邻时也会折叠

    XML/HTML Code复制内容到剪贴板

    1.   

    2.        

    3.    

    CSS的margin属性知识总结

    以上代码运行后,我们讲得到的是红色边框的正方形,方框的宽高都应该是 100px,高度不应该是 150px。

    4.折叠后 margin 的计算规则

      4.1:参与折叠的 margin 都是正值

    XML/HTML Code复制内容到剪贴板

    1. A  

    2.  B  

    CSS的margin属性知识总结

    在 margin 都是正数的情况下,取其中 margin 较大的值为最终 margin 值。

    4.2:参与折叠的 margin 都是负值

    XML/HTML Code复制内容到剪贴板

    1. A  

    2.  B  

    CSS的margin属性知识总结

    当 margin 都是负值的时候,取的是其中绝对值较大的,然后,从 0 位置,负向位移。

     4.3:参与折叠的 margin 中有正值,有负值

    XML/HTML Code复制内容到剪贴板

    1. A  

    2. B  

    CSS的margin属性知识总结

    如果,相邻的 margin 中有正值,同时存在负值会怎样呢?有正有负,先取出负 margin 中绝对值中最大的,然后,和正 margin 值中最大的 margin 相加。其实也就是正负相加就可以了。

    上面的例子最终的 margin 应该是 100 + (-50) = 50px。

    5.Collapsing margins 解决方法

    解决方法有如下:

    a:浮动元素、inline-block 元素、绝对定位元素的 margin 不会和垂直方向上其他元素的 margin 折叠 ( 针对 兄弟元素)

    注意: 浮动元素 , inline-block元素 , 绝对定位元素 都属于 BFC元素。

    b:创建了块级格式化上下文(BFC, blocking formatting context )的父元素,比如说overflow:hidden,不和它的子元素发生 margin 折叠 (针对 父子元素)。

    c:给父元素添加以下内容之一都可以避免发生 margin 重叠 。如 添加内容 , 添加 padding , 添加 border。

    虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。也就是,不要给指定元素添加具有指定宽度的内边距或外边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。

    “CSS的margin属性知识总结”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


    网站名称:CSS的margin属性知识总结
    文章出自:http://tjjierui.cn/article/pcigdg.html

    其他资讯

    在线咨询
    服务热线
    服务热线:028-86922220
    TOP