【发布时间】:2021-03-26 01:46:53
【问题描述】:
我有时觉得 Flex 太复杂了。
演示:https://jsfiddle.net/304xhguw/
我正在尝试创建一个结尾有多行文本的容器:
使用 Flex 应该真的很容易,对吧?
div {
display: flex;
align-items: flex-end;
padding: 20px;
height: 300px;
background: #222;
flex-wrap: wrap;
}
h1 {
width: 100%;
}
h1, p {
color: #fff;
}
完成,容器使用 flex,在末尾对齐项目,并且由于 wrap 和 100% 中的 wrap 和 width,h1 创建了一个新行。完美。
不是这样的:
等等,这里发生了什么? <p> 与底部对齐,但 <h1> - 不是吗?但是父容器有align-items: flex-end;,这是什么魔法?
不用担心,有一些惊人的属性应该可以工作,让我们试试吧:
h1 { align-self: flex-end; }
没什么变化,嗯,好吧,那么也许:
h1 { align-self: end; }
好吧,现在怎么办?
请问,谁能向我解释一下这里到底发生了什么以及为什么 Flex 如此愚蠢不直观?我可以在 20 秒内使用旧的 position: relative 甚至 tables(我知道,我知道...)来完成此操作。是只有我一个人还是 Flexbox 感觉像是一个非常强大的工具,但对于大约 95% 的最简单的情况来说,它是一种过度杀伤和令人头疼的工具?
注意:我不想添加任何额外的 DIVS 包装器或容器。我觉得将 h1 和 p 包装在一个 div 中然后对齐会相当容易,但我不会在 2021 年使用 Flex 来添加不必要的标记。
【问题讨论】: