Элементы с абсолютным позиционированием позиционируются из их offsetParent
, ближайший предок, который , также позиционируется . В вашем коде ни один из предков не является «позиционированным» элементом, поэтому div смещен относительно элемента body, то есть offsetParent
.
Решение состоит в том, чтобы применить position:relative
к родительскому 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>