2 つの DIV をぴったり重ねて配置する必要があります。ただし、そうすると、包含する DIV が高さがないかのように動作するため、書式設定が台無しになります。これは予想される動作だと思いますが、position:absolute
これら 2 つの要素を互いの上に配置して、コンテンツが伸びるのに合わせてコンテナーが伸びるようにする方法を見つける必要があります。
の左上端は、.layer2
の左上端と正確に揃う必要があります。layer1
<!-- HTML -->
<div class="container_row">
<div class="layer1">
Lorem ipsum...
</div>
<div class="layer2">
More lorem ipsum...
</div>
</div>
<div class="container_row">
...same HTML as above. This one should never overlap the .container_row above.
</div>
/* CSS */
.container_row {}
.layer1 {
position:absolute;
z-index: 1;
}
.layer2 {
position:absolute;
z-index: 2;
}
ベストアンサー1
absolute
実際には、位置や高さを指定しなくてもこれは可能です。必要なのは、display: grid
親要素で使用し、子孫を同じ行と列に配置することだけです。
HTML に基づいて、以下の例を確認してください。<span>
結果を確認できるように、いくつかの色のみを追加しました。
z-index
また、各子孫要素を簡単に変更して、その可視性(どの要素を最上位にするか)を操作することもできます。
.container_row{
display: grid;
}
.layer1, .layer2{
grid-column: 1;
grid-row: 1;
}
.layer1 span{
color: #fff;
background: #000cf6;
}
.layer2{
background: rgba(255, 0, 0, 0.4);
}
<div class="container_row">
<div class="layer1">
<span>Lorem ipsum...<br>Test test</span>
</div>
<div class="layer2">
More lorem ipsum...
</div>
</div>
<div class="container_row">
...same HTML as above. This one should never overlap the .container_row above.
</div>