gpt4 book ai didi

html - parent 的填充将 child 的边距变成高度扩展

转载 作者:行者123 更新时间:2023-11-28 18:00:08 25 4
gpt4 key购买 nike

有一个 block :

<div class="block">
<p>this is a paragraph this is a paragraph</p>
</div>

及其风格:

.block{background:gray; width:300px}
p{margin-top:50px}

这是结果:

without padding on parent

好吧,但是当我将 padding-top 添加到 .block 时,结果不同:

.block{background: gray; width:300px; padding-top:1px}
p{margin-top:50px;}

结果:

by adding padding to parent

看起来通过向父级添加填充,子级 (p) 的边距导致扩展。

您可以查看 fiddle :http://jsfiddle.net/YFU2f/2/http://jsfiddle.net/YFU2f/3/

最佳答案

默认情况下,相邻边距会折叠,当您在它们之间引入填充时,它们不再相邻,因此它们会分开。

在您的示例中,您在 p 元素上定义的上边距与 body 元素的上边距折叠(默认情况下通常为 8px),因此在最后, Canvas 顶部与p内容框顶部的距离为50px。如果引入padding,就变成了8px+1px+50px=59px。您还可以通过查看 div 的背景注意到边距的折叠:当边距折叠时,就好像 50px 边距仅为 body 声明.

您可以在规范中找到所有详细信息:http://www.w3.org/TR/CSS21/box.html#collapsing-margins

关于html - parent 的填充将 child 的边距变成高度扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20599317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com