【发布时间】:2013-06-11 12:11:02
【问题描述】:
如何让绝对定位元素尊重其父元素的填充?我希望一个内部 div 跨越其父级的宽度并定位在该父级的底部,基本上是一个页脚。但是孩子必须尊重父母的填充物,但它没有这样做。孩子被直接压在父母的边缘。
所以我想要这个:
但我明白了:
<html>
<body>
<div style="background-color: blue; padding: 10px; position: relative; height: 100px;">
<div style="background-color: gray; position: absolute; left: 0px; right: 0px; bottom: 0px;">css sux</div>
</div>
</body>
</html>
我可以通过内部 div 周围的边距来实现它,但我不想添加它。
【问题讨论】:
-
为什么不把内部div的左/右/下改为
style="background-color: gray; position: absolute; left: 10px; right: 10px; bottom: 10px;"? -
是的,我想到了这一点,但它很快就变成了维护方面的难题,因为每个孩子都必须有自己的一组偏移量来解决这个问题。如果他们只是尊重父母的填充,那么你可以在父母中设置一次,而不用担心所有的孩子。
-
如上所述,如果您使用(相对定位的)父级填充的值作为(绝对定位的)子级的
left:和right:,您的问题就解决了。我正在添加这个 b/c,这是其他有相同问题的人可能正在寻找的答案。 -
这里有类似的问题:jsfiddle.net/5n4By/6。页脚尊重其父级的左侧填充,但它在右侧溢出。您会期望它也能够遵守正确的填充以保持一致......
标签: css padding css-position