我有两个父元素,里面有3个孩子。 (#grandParent>#parent>#children*3
)grandParent
具有设置的高度和宽度,parent
已应用填充。所有元素都有box-sizing: border-box
。
如果应用border-box
,则填充应使children
更小,而是将其向下推,并保留其大小。为什么在应用填充时children
变小?
* {
box-sizing: border-box;
}
#grandParent {
width: 34px;
height: 34px;
}
#parent {
padding: 30px 5px;
}
.children {
background: black;
height: 3px;
width: 100%;
margin-bottom: 6px;
}
#reference {
background-color: orange;
width: 34px;
height: 34px;
}
<div id="grandParent">
<div id="parent">
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
</div>
</div>
<div id="reference"></div>
答案 0 :(得分:2)
在 元素上使用box-sizing: border-box
表示您将padding
和border
包含在 元素的宽度计算中。
您只在padding
上应用了parent
,因此仅在那里生效。
width
的{{1}}或height
自动(默认为未指定)。因此,尝试设置parent
或添加height
- 您可以看到height: inherit
padding
在检查元素时减少了。{/ p>
见下面的演示:
parent
&#13;
* {
box-sizing: border-box;
}
#grandParent {
width: 34px;
height: 34px;
}
#parent {
padding: 30px 5px;
height: inherit;
}
.children {
background: black;
height: 3px;
width: 100%;
margin-bottom: 6px;
}
#reference {
background-color: orange;
width: 34px;
height: 34px;
}
&#13;