我需要一个css灵活的方式来设置每行2个项目,并在每行的第二个项目,以自动扩展宽度。我尝试了很多方法,比如为每行中的第二个项目设置margin-right:auto,但都不起作用。这是我现在所拥有的:第一个Flex项目内的文字不应换行。下面是我需要的结果:
vwkv1x7d1#
此布局不能用于Flex,因为每一行都独立于其他行,并且不能定义列宽。但是,使用网格的解决方案很简单,因为可以定义列宽。第一个在上面的代码中,grid-template-columns定义了两列。第一个设置为width min-content,这意味着它将调整为可能的最小宽度。第二个设置为1fr,这意味着它将占用所有剩余空间。
grid-template-columns
min-content
1fr
yptwkmov2#
已更新,文本不换行
这里有一个快速的例子,它有望达到预期的结果。它在发布的HTML结构上工作,只是在<style>中对CSS做了一些更改。示例:(请使用下面的按钮查看实况)
<style>
<style> div { /* 👇 edit left span width here */ --left-span-width: 150px; /* 👇 edit gap of span here */ --span-gap: 2px; display: flex; flex-wrap: wrap; gap: var(--span-gap); } div span:nth-child(odd) { width: calc(var(--left-span-width) - var(--span-gap)); background: red; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } div span:nth-child(even) { flex: 1 1 calc(100% - var(--left-span-width)); background: yellow; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } </style> <div> <span>aaa</span> <span>bbbbbb</span> <span>ccccccccc ccccccccc ccccccccc</span> <span>ddd</span> <span>eee</span> <span>fff</span> </div>
nkcskrwz3#
第一个
3条答案
按热度按时间vwkv1x7d1#
此布局不能用于Flex,因为每一行都独立于其他行,并且不能定义列宽。
但是,使用网格的解决方案很简单,因为可以定义列宽。
第一个
在上面的代码中,
grid-template-columns
定义了两列。第一个设置为width
min-content
,这意味着它将调整为可能的最小宽度。第二个设置为
1fr
,这意味着它将占用所有剩余空间。yptwkmov2#
已更新,文本不换行
这里有一个快速的例子,它有望达到预期的结果。
它在发布的HTML结构上工作,只是在
<style>
中对CSS做了一些更改。示例:(请使用下面的按钮查看实况)
nkcskrwz3#
第一个