我有一个 <ul>
元素,其样式是水平列出其内部 <li>
元素:
一个是第一个数字|二是第二个数字|三是第三个数字|四是第四个数字
这适用于较短的内容,但如果没有足够的空间来显示它们,这些"cells"需要以不同的优先级崩溃 without wrapping .
...Something like this:
一个是第一个数字|二是... |三是... | F...
因此,第一个单元格应始终显示其内容的100%,后两个单元格应显示~40-50%(流畅地或作为硬编码的宽度/百分比),第四个单元格可以占用任何剩余的内容(如果有的话) )...没有溢出父容器的边界 .
哦,这些项目都需要同样美观 .
Possible to do cleanly without flex/JS? 我不确定 . 我们的想法是创建一些视觉上吸引人的东西,它可以在单行中尽可能多地显示列出的部分中的信息,第一个信息始终显示其所有内容而没有省略号/包装/溢出并在该行中占据最高优先级 .
EDIT: 我只是想澄清一下,设置 min-width
在这里不起作用,因为内容可以在少于 min-width
的情况下呈现 . (考虑"abc"而不是"two is the..." ...这应该只占"abc"的空间 <li>
.
1 回答
所以这就是我能想到的
flexbox
- 我想这会让你开始:flexbox
的ul
与white-space:nowrap
对所有flex子项保持文本内容在一行中 .根据您的要求,向第一个孩子添加
ellipsis
除了第一个孩子 .这里的魔力是通过以下方式完成的:
一个 . 对于第一个flex子,我们禁用
flex-grow
湾对于其他flex儿童,我们使用相对的
flex
ing .请告诉我您对此的反馈 . 谢谢!