题解 | #盒模型- 外边距折叠#

盒模型- 外边距折叠

https://www.nowcoder.com/practice/9c6f4a2626d34b798f20ed31ba17e441

<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            .top,.bottom{
                width: 100px;
                height: 100px;
                margin: 10px;
            }
            .top{
                background-color: green;
            }
            .bottom{
                position: absolute;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <section class="top"></section>
        <section class="bottom"></section>
    </body>
</html>

常规块盒子有一种机制叫外边距折叠,即垂直方向上的两个外边距相遇时,会折叠成一个外边距,且折叠之后的外边距高度为两者之中较大的那一个。现在给类名为"top"、"bottom"两个盒子都设置宽度、高度且都为"100px"、都设置外边距且都为"10px",可以添加任意颜色便于区分两个盒子。此时通过调试工具可以发现两个盒子之间的距离为"10px",并不是"20px",说明已经发生了外边距折叠。外边距折叠好像很奇怪,实际上却很有用。当一个页面包含了多个段落,如果没有外边距折叠,从第二个段落开始,所有段落的间距都是最上方段落的上外边距的两倍,有了外边距折叠,段落间距才会相等。如果想要清除两个盒子之间的外边距折叠,可以给目标盒子设置以下属性:1. display: inline-block2. float属性值不是"none"的元素3. 绝对定位现在给类名为"bottom"的盒子设置"position"属性为"absolute",可以看到下方的盒子向下移动了,此时外边距折叠失效。

开启BFC即可解决外边距合并问题.

BFC(Block Formatting Context)区块格式化上下文

  1. 开启BFC的区域,是一块
  2.  ,内部渲染不会影响到外部
  3. 不同的BFC区域,

开启BFC能解决什么问题

  1. 开启BFC,其 不会再产生margin塌陷问题(不会和他的子元素产生margin合并)
  2. 开启BFC,就算子元素浮动, (计算高度时不再无视浮动元素)
  3. 开启BFC, (不会与浮动元素重叠,会避开浮动元素排布)

如何开启BFC

  1. 根元素(HTML)自身是一个BFC
  2. 设置float 属性不为none
  3. 设置position 属性为设置
  4. 设置 overflow属性值不为visible
  5. 行内块盒(inline-block )
  6. 设置 display为flow-root 的元素
  7. 伸缩项目(flex盒子内的item )
  8. 多列容器(设置column-count )
  9. 表格元素(table thead tbody tfoot tr th td caption)
  10. column-span为all的元素(表格第一行横跨所有列)
全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
书海为家:实习是成为大厂正式员工很好的敲门砖,看您的简历中有一段实习经历,挺好的。我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己实习时做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务