position:relativeのプロパティを持つ最後の子にトップオフセットプロパティを適用すると、親がスクロールバーを生成するのはなぜですか?スクロールバーを生成する親の固定高さはありません。親は位置指定された子でスクロールバーを生成します
https://jsfiddle.net/gn3svh1w/
HTML
<div class="wrap">
<div class="child one"></div>
<div class="child two"></div>
<div class="child three"></div>
</div>
CSS
.wrap {
width: 30%;
min-height: auto;
background: slategrey;
overflow: auto;
}
.child {
width: 100px;
height: 100px;
background: tomato;
margin: 1rem;
}
.three {
position: relative;
top: 40px;
}
'overflow:auto'を' .wrap'のスタイルから削除します。このプロパティにより、スクロールが表示されます。 –
相対位置は、要素を親のラッパーの高さから外しています(3つの要素の高さによって定義されます)。スクロールバーを防ぐため、 'top:40px'を' margin-top:40px'に変更し、すべてのスペーシングを通常のフローに保ちます。 –