Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 什么';这是负底边的影响_Css_Margin - Fatal编程技术网

Css 什么';这是负底边的影响

Css 什么';这是负底边的影响,css,margin,Css,Margin,首先,这里是html: <div class="first"> <div class="second"> <div class="third"> Hello, margin collapsing! </div> </div> </div> 在最终布局中,第三个div看起来没有底部边距。我知道这一定是第二个div的影响,它的底边是负数。但我不明白它是怎么工

首先,这里是html:

<div class="first">
    <div class="second">
        <div class="third">
           Hello, margin collapsing!
        </div>
    </div>
</div>

在最终布局中,第三个div看起来没有底部边距。我知道这一定是第二个div的影响,它的底边是负数。但我不明白它是怎么工作的。你能解释一下吗

填充-简单地说,在元素内部创建一个不可见的边框。您可以为元素内部(内容周围)提供空间

因此,在这里您可以告诉我们,first的任何内容都必须距离每边20px(每边都是因为您没有提供任何类似padding top的声明)

边距-另一方面,它会在元素周围创建相反的空间

.second {
  background-color: green;
  margin-bottom: -20px;
}
所以这一个说第二个街区在外面的底部有一个空间。其定义为负值,这意味着以下项在元素中浮动

.second {
  background-color: green;
  margin-bottom: -20px;
}

这很好地解释了这一点:

在块元素上,可以使用负边距。第一个是填充的,第二个是填充的,所以仍然在这里。第二种方法是设置一个负的边距,第三种方法是添加该边距,因此完全没有必要。检查将30添加到第三个时会发生什么:示例中的文本内容提到了已经存在的答案-正在折叠的边距。您应该查找“边距塌陷”。信息量很大。
.second {
  background-color: green;
  margin-bottom: -20px;
}