怎么实现文字在一行内显示,超过字数用...代替?
思否 问答 👍 6 含 AI 优化版
问题
怎么实现文字在一行内显示,超过字数用...代替?
由大模型辅助整理,保留原意,优化结构与可读性。
问题概述
提问者希望实现单行文本溢出时自动截断并显示省略号(...)的效果。
涉及技术
CSS
期望结果
获得可直接使用的 CSS 方案,让超长文本在一行内显示并用省略号代替被截断的部分。
回答
原始回答
2017-05-10
overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
overflow:hidden:超出隐藏
white-space:nowrap:强制不换行
text-overflow:ellipsis:超出省略号代替;
传送门,去看看
AI 优化 · 回答整理
解答思路
单行文本省略号效果可以用三条 CSS 属性组合实现:隐藏溢出内容、禁止换行、用省略号替代溢出部分。
示例代码
.ellipsis {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
详细说明
overflow: hidden:超出容器宽度的内容直接隐藏。white-space: nowrap:强制文本不换行,保证内容始终在一行显示。text-overflow: ellipsis:对于因overflow: hidden而被裁剪的文本,用省略号...代替。
三者需要配合使用才能生效,且元素本身通常还需要设置固定宽度(或 max-width)才能让溢出判断成立。
小结
单行文本溢出省略号是前端非常高频的样式需求,overflow: hidden + white-space: nowrap + text-overflow: ellipsis 三件套即可解决,多行省略则需要额外的 -webkit-line-clamp 等方案。
由大模型辅助整理,保留原意,补充结构与代码格式。
回答转载自 SegmentFault