让我们来下面这个布局
1
2
3
4
5
6
| <div style="display: flex;flex-direction: row;justify-content: space-between">
<div style="text-overflow: ellipsis;overflow: hidden;white-space: nowrap">
这是用户输入的长文本,它可能会很长
</div>
<button>清空</button>
</div>
|
如果我们不指定文本内容
的宽度,会导致用户输入过长时,清空
按钮直接被挤走。
解决方法#
添加 flex: 1 1 auto
1
2
3
4
5
| <div
style="text-overflow: ellipsis;overflow: hidden;white-space: nowrap;flex: 1 1 auto"
>
这是用户输入的长文本,它可能会很长
</div>
|
这里的意思是 表示一个用于 Flexbox 布局的快捷属性。它相当于以下属性的缩写:
1
2
3
| flex-grow: 1;
flex-shrink: 1;
flex-basis: auto;
|
- flex-grow 定义了项目在分配多余空间时的放大能力。
- flex-shrink 定义了项目在空间不足时的缩小能力。
- flex-basis 定义了项目在未伸缩之前的初始大小。
设置
flex: 1 1 auto;
会使项目等比例地占据剩余空间,允许收缩,并以内容的自然宽度作为基准大小。