当填充为零时,为什么不遵守前导/尾随边距?

时间:2019-10-21 06:07:55

标签: html css

考虑以下HTML / CSS:

<div>
    <p>Paragraph #1</p>
    <p>Paragraph #2</p>
    <p>Paragraph #3</p>
</div>
div {
    background-color: gray;
    padding: 0;
}

p {
    margin-top: 1em;
    margin-bottom: 1em;
}

包含的div没有填充,因此不考虑p#1的顶部边距和p#2的底部,实际上为零:

Paragraphs with internal margins, but no leading or trailing margins

但是现在,如果我们仅对包含的div进行填充,那么这些边距就会突然受到尊重:

div {
    padding-top: 1px;
    padding-bottom: 1px;
}

Paragraphs with leading, trailing, and internal margins

问题:

  1. 为什么这种行为有意义?为什么前导/尾随边距完全取决于填充?为什么它们不一直出现或根本不出现?
  2. 这是行为标准吗?跨浏览器似乎很一致(IE9,Firefox 69.0.3,Chrome 77.0.3865.120)。

0 个答案:

没有答案