如何让 2 个重叠元素填充它们的父元素
How to have 2 overlapping elements fill their parent
我需要 2 个元素(在演示中标记为 #a 和 #b)来完全填充它们的父元素。我需要元素 #a 填充它的父元素(这很简单,我只是将 flex 设置为 1),我需要元素 #b 位于 #a 之上并且具有与 #a 完全相同的大小。如何使#b 具有相同的大小?如果我将 width/height 设置为 100% #b 将溢出。
body {
margin: 0;
display: flex;
width: 100vw;
height: 100vh;
}
nav {
background-color: silver;
}
main {
flex: 1;
border: 5px solid green;
display: flex;
}
#a {
border: 1px solid aqua;
flex: 1;
}
#b {
position: absolute;
border: 1px dashed blue;
flex: 1;
}
<nav>sidebar of variable width</nav>
<main>
<div id="a">aaa</div>
<div id="b">bbb</div>
</main>
如果您将父级(主)设置为 position: relative 而 #b 是 position: absolute 那么您应该能够相对于 main 调整其大小(在本例中为 100% 宽度和高度)并将其定位到顶部和左侧 0.
body {
margin: 0;
display: flex;
width: 100vw;
height: 100vh;
}
nav {
background-color: silver;
}
main {
flex: 1;
border: 5px solid green;
display: flex;
position: relative;
}
#a {
border: 1px solid aqua;
flex: 1;
}
#b {
position: absolute;
border: 1px dashed blue;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
<nav>sidebar of variable width</nav>
<main>
<div id="a">aaa</div>
<div id="b">bbb</div>
</main>
我需要 2 个元素(在演示中标记为 #a 和 #b)来完全填充它们的父元素。我需要元素 #a 填充它的父元素(这很简单,我只是将 flex 设置为 1),我需要元素 #b 位于 #a 之上并且具有与 #a 完全相同的大小。如何使#b 具有相同的大小?如果我将 width/height 设置为 100% #b 将溢出。
body {
margin: 0;
display: flex;
width: 100vw;
height: 100vh;
}
nav {
background-color: silver;
}
main {
flex: 1;
border: 5px solid green;
display: flex;
}
#a {
border: 1px solid aqua;
flex: 1;
}
#b {
position: absolute;
border: 1px dashed blue;
flex: 1;
}
<nav>sidebar of variable width</nav>
<main>
<div id="a">aaa</div>
<div id="b">bbb</div>
</main>
如果您将父级(主)设置为 position: relative 而 #b 是 position: absolute 那么您应该能够相对于 main 调整其大小(在本例中为 100% 宽度和高度)并将其定位到顶部和左侧 0.
body {
margin: 0;
display: flex;
width: 100vw;
height: 100vh;
}
nav {
background-color: silver;
}
main {
flex: 1;
border: 5px solid green;
display: flex;
position: relative;
}
#a {
border: 1px solid aqua;
flex: 1;
}
#b {
position: absolute;
border: 1px dashed blue;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
<nav>sidebar of variable width</nav>
<main>
<div id="a">aaa</div>
<div id="b">bbb</div>
</main>