flex 单行展示遇到处理文本溢出

预期效果图及错误示例:

image.png

错误1

image.png

错误2

image.png

场景描述:

图片中,左侧是一个文件名,右边一个查看按钮,两者的文字都可能会发生变化(**都不是定宽的**)。
- 如果没溢出按钮紧贴在文件名后面
- 如果溢出则省略展示文件名

问题:

flex布局无法兼顾两种情况, 需要手动处理溢出的情况。

线上代码:

https://codepen.io/konayukis/...

如何实现单行展示两个不定宽元素,且在溢出时只对某个元素省略展示。另一个元素展示不变?
不用flex布局也可以,可以提出解决方案。

阅读 2.8k
3 个回答
.list {
  width: 300px;
  padding: 10px;
  outline: 1px solid #ccc;
}

.item{
  display: flex;
-  flex-wrap: wrap;
+  flex-wrap: nowrap;
}
.filename {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  min-width: 0;
+  white-space: nowrap;
  
}
.btn {
  margin-left: 10px;
  color: blue;
+  flex-shrink: 0;
}

已经找到解决办法,去掉flex-wrap: wrap;就可以了,
思维受限了,以为在用一行就需要用flex-wrap
有懂得老哥可以解释一下原理

少侠你忘了写overflow:hidden,当然你这还换行了,加一下white-space: nowrap;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏