如何在多行 flexbox 包裹布局中仅垂直拉伸一行?
How to vertically stretch only one row in a multi-line flexbox wrapped layout?
这个 one 有一个类似的问题,但他想要一个固定的行,没有人可以使用纯 flexbox 提供答案。
我有一个简单的布局,有 3 个 divs,我希望第一个和第二个在第一行,然后 3 在第二行,占 100vw;
我希望第三个 div (底部的那个)的高度尽可能小(只有里面文本的高度),所以 divs 1 和 2 会被拉伸以填满space。问题是,当我尝试这样做时,除非我拉伸 div 3.
,否则我无法填充的行之间有一个空的 space
在我的尝试中,外部容器是 flex: row wrap
,div 3 是 align-self: flex-end
,我尝试将 align-self: stretch
应用到 divs 1 和2 但随后就不会伸展。我怎样才能做到这一点?
这是我的。
HTML:
<html>
<body>
<div class="container">
<div class="first">First</div>
<div class="second">Second</div>
<div class="third">Third</div>
</div>
</body>
</html>
CSS
* {
font-size: 1.5rem;
margin: 0;
padding: 0;
}
.container {
background: #AAA;
height: 100vh;
display: flex;
flex-flow: row wrap;
align-content: stretch;
}
.first {
background: lightblue;
width: 30%;
}
.second {
background: lightyellow;
width: 70%;
}
.third {
background: lightgreen;
width: 100vw;
align-self: flex-end;
}
这是我的代码snippet。灰色区域是我要用蓝色和黄色填充的。
您是否考虑过为前两个元素再添加一个 div?
* {
font-size: 1.5rem;
margin: 0;
padding: 0;
}
.container {
background: #AAA;
height: 100vh;
display: flex;
flex-direction: column;
align-content: stretch;
}
.container1 {
display: flex;
flex: 1 0;
}
.first {
background: lightblue;
width: 30%;
}
.second {
background: lightyellow;
width: 70%;
}
.third {
background: lightgreen;
}
<body>
<div class="container">
<div class="container1">
<div class="first">First</div>
<div class="second">Second</div>
</div>
<div class="third">Third</div>
</div>
</body>
这个 one 有一个类似的问题,但他想要一个固定的行,没有人可以使用纯 flexbox 提供答案。
我有一个简单的布局,有 3 个 divs,我希望第一个和第二个在第一行,然后 3 在第二行,占 100vw; 我希望第三个 div (底部的那个)的高度尽可能小(只有里面文本的高度),所以 divs 1 和 2 会被拉伸以填满space。问题是,当我尝试这样做时,除非我拉伸 div 3.
,否则我无法填充的行之间有一个空的 space在我的尝试中,外部容器是 flex: row wrap
,div 3 是 align-self: flex-end
,我尝试将 align-self: stretch
应用到 divs 1 和2 但随后就不会伸展。我怎样才能做到这一点?
这是我的。
HTML:
<html>
<body>
<div class="container">
<div class="first">First</div>
<div class="second">Second</div>
<div class="third">Third</div>
</div>
</body>
</html>
CSS
* {
font-size: 1.5rem;
margin: 0;
padding: 0;
}
.container {
background: #AAA;
height: 100vh;
display: flex;
flex-flow: row wrap;
align-content: stretch;
}
.first {
background: lightblue;
width: 30%;
}
.second {
background: lightyellow;
width: 70%;
}
.third {
background: lightgreen;
width: 100vw;
align-self: flex-end;
}
这是我的代码snippet。灰色区域是我要用蓝色和黄色填充的。
您是否考虑过为前两个元素再添加一个 div?
* {
font-size: 1.5rem;
margin: 0;
padding: 0;
}
.container {
background: #AAA;
height: 100vh;
display: flex;
flex-direction: column;
align-content: stretch;
}
.container1 {
display: flex;
flex: 1 0;
}
.first {
background: lightblue;
width: 30%;
}
.second {
background: lightyellow;
width: 70%;
}
.third {
background: lightgreen;
}
<body>
<div class="container">
<div class="container1">
<div class="first">First</div>
<div class="second">Second</div>
</div>
<div class="third">Third</div>
</div>
</body>