私は3つのレベルを持っていますdiv
:
- (下の緑色)
div
。のあるトップレベルoverflow: hidden
。これは、ボックスのサイズを超えた場合に、そのボックス内の一部のコンテンツ(ここには表示されていません)をトリミングするためです。 - (下の赤で)この中に、私は持っ
div
ていposition: relative
ます。これの唯一の用途は、次のレベルです。 - (下の青色)最後
div
に、フローを削除しますposition: absolute
が、(ページではなく)赤を基準にして配置div
します。
青いボックスをフローから取り出して、緑のボックスを超えて拡張したいのですが、次のように赤いボックスに対して相対的に配置します。
ただし、以下のコードを使用すると、次のようになります。
そしてposition: relative
、赤いボックスのを削除すると、青いボックスは緑のボックスから出ることができますが、赤いボックスに対してもう配置されていません。
次の方法はありますか?
overflow: hidden
緑色のボックスを維持します。- 青いボックスは緑のボックスを超えて拡張され、赤いボックスに対して相対的に配置されていますか?
完全なソース:
#d1 {
overflow: hidden;
background: #efe;
padding: 5px;
width: 125px;
}
#d2 {
position: relative;
background: #fee;
padding: 2px;
width: 100px;
height: 100px;
}
#d3 {
position: absolute;
top: 10px;
background: #eef;
padding: 2px;
width: 75px;
height: 150px;
}
<br/><br/><br/>
<div id="d1" >
<div id="d2" >
<div id="d3"></div>
</div>
</div>