我试图将id为“abs pos”的div放在相对于其父div的绝对位置。 但它不工作,div被放置在页面的左上角。
我的代码示例如下
<html>
<body>
<div style="padding-left: 50px;">
<div style="height: 100px">
Some contents
<div>
<div style="height: 80px; padding-left: 20px;">
<div id="absPos" style="padding: 10px; position: absolute; left: 0px; top: 0px; background-color: red;"></div>
Some text
</div>
</div>
</body>
</html>
你能帮我解决这个问题吗。 在我的实际情况下,我要放置一个背景图像,而不是红色背景颜色。
问候
具有绝对定位的元素从它们的offsetparent
(也被定位的最近祖先)定位。 在您的代码中,没有一个祖先是“定位”元素,因此div与body元素偏移,这就是offsetparent
。
解决方案是将position:relation
应用于父div,这将强制它成为定位元素和子元素的offsetparent
。
<html>
<body>
<div style="padding-left: 50px;">
<div style="height: 100px">
Some contents
<div>
<div style="height: 80px; padding-left: 20px; position: relative;">
<div id="absPos" style="padding: 10px; position: absolute; left: 0px; top: 0px; background-color: red;"></div>
Some text
</div>
</div>
</body>
</html>
如果要放置具有绝对位置的元素,则需要基元素具有默认值以外的位置值。
在您的情况下,如果您将父div的position值更改为“relative”,您可以修复该问题。
您需要声明父div本身position:relative
或position:absolute
。
relative
是您在本例中要查找的内容。