子要素の相対位置を絶対位置から絶対位置に変更しています。相対位置と絶対位置との間のパディング
children要素の幅は、親の幅のパーセンテージです。 relativeをabsoluteからabsoluteに変更すると、パーセンテージに親のパディングが追加されるようになりました。デモで黒いdivをホバーします。
子供の割合には親の詰め込みが含まれないようにするにはどうすればよいですか?
なぜ両方の位置の値が異なるか?
body {
margin: 0;
}
#parent {
width: calc(100% - 100px);
height: 100vh;
padding-right: 100px;
background: pink;
position: relative;
}
.children {
position: relative;
width: 50%;
height: 100%;
background: black;
float: left;
}
.children:nth-child(2) {
background: grey;
}
#parent:hover .children {
position: absolute;
top: 0;
left: 0;
}
#parent:hover .children:nth-child(2) {
left: 50%;
}
<div id="parent">
<div class="children"></div>
<div class="children"></div>
</div>
なぜポジションタイプを変更したいですか?あなたは何を期待していますか? – Stickers
これは正確な問題の単純化されたケースです。実際のケースは要素が位置するグリッドです:relative; float:left; 。 javascriptがロードされると、top/leftの正確な値と位置が割り当てられます。ユーザーが何らかの方法でサイトとやりとりすると、上/左の値が変更され、移行することができます。 – Alvaro