親divに対して絶対位置にid'absPos 'の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:relative
を親divに適用することです。これにより、親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の位置の値を「relative」に変更すると、問題を修正できます。
親divをposition: relative
またはposition: absolute
自体で宣言する必要があります。
relative
は、この場合に探しているものです。
最初に親divrelative
の位置を指定する必要があります。
<div style="height: 80px; padding-left: 20px; position:relative;">
親DivにPosition:absoluteを適用することもできます。以下の合計コード
<html>
<body>
<div style="padding-left: 50px;">
<div style="height: 100px">
Some contents
<div>
<div style="height: 80px;position:absolute; 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>
私のように、ある要素を別の要素の上に配置しようとした場合、フローティング要素は兄弟としてではなく、他の要素の内側にある必要があります。今あなたのposition:absolute;
働ける!