有一个很好的方法吗?
到目前为止,我已经尝试过flexbox,认为设置flex给孩子并且将最后一个孩子设置为绝对定位,同时将top设置为0可能会这样做,但是没有成功。
仅限Chrome(最新版本)解决方案。
z-index

/*
Height of .child-a and .child-b is dynamic,
div with "more content" must be always under .parent,
whether .child-a or .child-b is taller.
*/
.parent {
display: flex;
flex-flow: column nowrap;
}
.parent > div {
width: 100%;
}
.child-a {
background: rgba(255,0,0,0.5);
height: 50px;
flex: 1;
}
.child-b {
background: rgba(0,0,255,0.5);
height: 100px;
flex: 1;
position: absolute;
top: 0;
}

答案 0 :(得分:1)
你知道我认为我使用css网格得到了它。不是最优雅的东西,但似乎工作。 如果有人偶然发现同样的问题,请将其发布在此处。
.parent {
width: 100%;
display: grid;
grid-template-columns: auto;
grid-template-rows: max-content;
}
.parent > div {
width: 100%;
}
.child-a {
height: 150px;
background: rgba(255,0,0,0.5);
grid-row-start: 1;
grid-row-end: 1;
grid-column-start: 1;
grid-column-end: 1;
}
.child-b {
height: 100px;
background: rgba(0,0,255,0.5);
grid-row-start: 1;
grid-row-end: 1;
grid-column-start: 1;
grid-column-end: 1;
}

<div class="parent">
<div class="child-a">aa</div>
<div class="child-b">bb</div>
</div>
<div>
more content
</div>
&#13;
答案 1 :(得分:0)
.parent {
display: block;
}
.parent > div {
width: 100%;
}
.child-a {
background: rgba(255,0,0,0.5);
height: 50px;
}
.child-b {
background: rgba(0,0,255,0.5);
height: 100px;
position: absolute;
top: 0;
}