以我的经验,为了让我的许多元素的项目正确地承认他们孩子的边距,我不得不对其应用微不足道的填充。例如:
<style type="text/css">
:root {
border: 1px solid #000;
font-family: sans-serif;
}
body>div {
outline: 1px solid #00F;
}
div>div {
margin: 1em;
outline: 1px solid #0F0;
}
#div1 {
padding: 0;
}
#div2 {
padding: 0.05px;
}
#div3 {
padding: 10px;
}
</style>
<div id="div1"><div>Div 1 (parent without padding)</div></div>
<div id="div2"><div>Div 2 (parent with imperceptible padding)</div></div>
<div id="div3"><div>Div 3 (parent with visible padding)</div></div>
基本上呈现为
┌───────────────────────────────────────────────────────────────────────────────┐
│ │
│┌─┬─────────────────────────────────────────────────────────────────────────┬─┐│
││ │Div 1 (parent without padding) │ ││
│└─┴─────────────────────────────────────────────────────────────────────────┴─┘│
│ │
│┌─────────────────────────────────────────────────────────────────────────────┐│
││ ┌─────────────────────────────────────────────────────────────────────────┐ ││
││ │Div 2 (parent with imperceptible padding) │ ││
││ └─────────────────────────────────────────────────────────────────────────┘ ││
│└─────────────────────────────────────────────────────────────────────────────┘│
│┌─────────────────────────────────────────────────────────────────────────────┐│
││ ││
││ ┌───────────────────────────────────────────────────────────────────────┐ ││
││ │Div 3 (parent with visible padding) │ ││
││ └───────────────────────────────────────────────────────────────────────┘ ││
││ ││
│└─────────────────────────────────────────────────────────────────────────────┘│
└───────────────────────────────────────────────────────────────────────────────┘
在此示例中,第 2 部分是具有预期效果的部分,但实现它的方法是……愚蠢的。为什么会发生这种情况,有什么方法可以在语义上实现我想要的效果?