我在另一个元素中有一个元素。父母有一定的规模。我希望孩子的大小完全相同,但同时要填充。
如果我不知道父母的确切大小,有没有办法让它与父母一样大小并且有填充?
问题:
感谢。
答案 0 :(得分:8)
在支持的浏览器上,将box-sizing
设置为border-box
(仅限CSS3)。这会导致浏览器将元素的宽度计算为内容+填充+边框+边距(而不是CSS1 / 2框模型中的content-box
):
input {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
我认为输入默认情况下已经有此设置,但这也适用于您想要计算宽度的任何其他子元素。
答案 1 :(得分:4)
创建子元素display:block
(这将使其填充父元素的宽度)并给出父填充或给孩子一个边距。不要试图在子元素上指定宽度。
答案 2 :(得分:0)
不幸的是,没有。在考虑任何填充/边距之前完成宽度计算,因此宽度为100%的子节点将是父节点的100%,之后会添加边距/填充,因此最终会有超过100%的内容。< / p>
您可以通过放置与背景颜色相同的边框来伪造效果。这样可行,因为你有一个坚实的背景让孩子跨越。
答案 3 :(得分:0)
答案 4 :(得分:0)
block-sizing: border-box
不适用于我的特定问题,但是对于那些回到该问题的人还有另一种方法:
使用position: absolute
和right:0
(或底部为垂直约束)将孩子约束为父母。父元素应具有position: relative
,并且被迫完全适合。