强制元素宽度完全匹配父宽度而不是屏幕宽度
Force element width to match exactly parent width and not screen width
在下面的代码片段中,您可以看到绿色 .bottom
停在屏幕宽度处,宽度为 100%。我可以强制宽度与父宽度完全匹配吗?在本例中为 1000px。
问题是红色 .top
是可变宽度,因此不能为绿色 .bottom
设置固定宽度。
.parent {
width: 700px;
}
div.container {
overflow: auto;
background-color: yellow;
display: flex;
flex-direction: column;
height: 100px;
}
div.top {
background-color: red;
height: 40px;
width: 1000px;
}
div.bottom {
background-color: green;
height: 20px;
width: 100%;
}
<div class="parent">
<div class="container">
<div class="top"></div>
<div class="bottom"></div>
</div>
</div>
使用 CSS 网格而不是 flexbox:
.parent {
width: 700px;
}
div.container {
overflow: auto;
background-color: yellow;
display: grid;
align-content: start; /* don't forget this */
height: 100px;
}
div.top {
background-color: red;
height: 40px;
width: 1000px;
}
div.bottom {
background-color: green;
height: 20px;
}
<div class="parent">
<div class="container">
<div class="top"></div>
<div class="bottom"></div>
</div>
</div>
在下面的代码片段中,您可以看到绿色 .bottom
停在屏幕宽度处,宽度为 100%。我可以强制宽度与父宽度完全匹配吗?在本例中为 1000px。
问题是红色 .top
是可变宽度,因此不能为绿色 .bottom
设置固定宽度。
.parent {
width: 700px;
}
div.container {
overflow: auto;
background-color: yellow;
display: flex;
flex-direction: column;
height: 100px;
}
div.top {
background-color: red;
height: 40px;
width: 1000px;
}
div.bottom {
background-color: green;
height: 20px;
width: 100%;
}
<div class="parent">
<div class="container">
<div class="top"></div>
<div class="bottom"></div>
</div>
</div>
使用 CSS 网格而不是 flexbox:
.parent {
width: 700px;
}
div.container {
overflow: auto;
background-color: yellow;
display: grid;
align-content: start; /* don't forget this */
height: 100px;
}
div.top {
background-color: red;
height: 40px;
width: 1000px;
}
div.bottom {
background-color: green;
height: 20px;
}
<div class="parent">
<div class="container">
<div class="top"></div>
<div class="bottom"></div>
</div>
</div>