【发布时间】:2017-12-14 07:36:23
【问题描述】:
我想使用 CSS flexbox 实现这个精确的 UI:
我的 DOM 看起来像这样:
<container>
<item>The</item>
<item>Quick</item>
<item>brown fox jumps over the lazy</item>
<item>dog</item>
</container>
请注意,有些项目足够长,可以多行,而其他项目足够短,应该在同一行。
据我所知,实现此 UI 的方法只有一种,那就是删除项目之间的空格:
<container>
<item>The</item><item>Quick</item><item>brown fox jumps over the lazy</item><item>dog</item>
</container>
<style>
container {
max-width: 150px;
display: block;
}
item {
color: white;
padding: 7px;
line-height: 2.0;
display: inline;
}
item:nth-child(1) {
background: red;
}
item:nth-child(2) {
background: green;
}
item:nth-child(3) {
background: orange;
}
item:nth-child(4) {
background: blue;
}
</style>
这在两个帐户上留下了一些不足之处:
- 将所有项目强制放在一行中会使 DOM 难以阅读,尤其是在更复杂的场景中。
- 它需要修改 line-height 以达到所需的高度。
我很想使用 CSS Flexbox 来实现这个精确的 UI,但我找不到让 Flexbox 像这样在多行上换行的方法。可能吗?
【问题讨论】:
-
不,单独使用 Flexbox 是不可能的,但是如果你添加一个脚本,你可以做到这一点,脚本可以包装每个单词。