当具有边距的元素包含在另一个元素中时,父元素不会始终包装该边距.
很多事情会导致父母包裹孩子的边缘:
(这只是来自小型测试,毫无疑问还有更多.)
我认为这与折叠边距有关,但是:
默认溢出的元素的逻辑是什么:auto应该包含与溢出设置为auto的材料不同的材料.
为什么除了常规div的默认行为之外的所有内容都假定父级包含保证金 - 为什么常规默认值不包括保证金?
编辑:最后的答案是W3C确实指定了这种行为,但那
演示:
body {
margin: 0;
}
div.block {
background-color: skyblue;
}
div.inline-block {
display: inline-block;
background-color: lawngreen;
}
div.position-absolute {
background-color: rgba(255,255,0,.7);
position: absolute;
bottom: 0;
right: 0;
}
div.overflow-auto {
background-color: hotpink;
overflow: auto;
}
div.border {
background-color: aquamarine;
border: solid;
}
h2 {
margin: 80px;
width: 250px;
border: solid;
}Run Code Online (Sandbox Code Playgroud)