【发布时间】:2020-10-02 18:07:05
【问题描述】:
具体来说,我想知道,在下面的示例中,为什么将height 值设置为第一个弹性项目会改变(实际上增加)第一行的高度。
一般来说,我希望能够确定一行的高度(我想当 flex-container 的高度设置为 auto 或显式值时)。
.flex-container {
display: flex;
flex-wrap: wrap;
width: 400px;
height: 200px;
border: 1px solid black;
align-items: stretch;
}
.flex-container> :nth-child(1) {
background-color: darkorchid;
height: 60px;
}
.flex-container> :nth-child(2) {
background-color: darkkhaki;
}
.flex-container> :nth-child(3) {
background-color: dodgerblue;
}
.flex-container> :nth-child(4) {
background-color: darkgoldenrod;
}
.flex-container> :nth-child(5) {
background-color: darkcyan;
}
<div class="flex-container">
<span>I am number 1</span>
<div>I am number 2</div>
<div>I am number 3</div>
<div>I am number 4</div>
<span>I am number 5</span>
</div>
【问题讨论】:
-
我知道一个完美的问题来详细说明这个......现在需要找到它-.-。作为一个快速的解释,你从 200px 中删除 60px (以获得 140px 作为可用空间(少一点,因为你必须考虑绿色的文本)然后你把它分成 2 (70px),这将使第一行大约 60px + 70px第二个大约 70px
-
找到它,考虑阅读两个答案以获得不同的观点,您将了解 align-content 如何控制这一切
-
@Temani Afif 你的答案似乎不对。首先代码给出了 3 行而不是 2,其次问题是为什么使第一个元素的高度为 60px,从而使 seconfd 元素的高度大于 60px?
-
@TemaniAfif,虽然副本确实为理解这个问题提供了一些指导,但我认为在这种情况下更具体的答案会很有用。
-
@DCR 您在哪个浏览器中看到 3 行?只有两条,它们称为 flex lines,如果您检查拉伸元素的高度,您会发现我的计算是正确的。不完全一样,因为我做了一个快速的解释(我们还需要考虑内容)