css 文本显示两行超过显示省略号

背景:

在css中实现文本显示两行,超出部分显示省略号(...),可以通过组合display:-webkit-box、-webkit-line-clamp和text-overflow:ellipsis等属性来实现。

单行省略: white-space:nowrap

多行省略: -webkit-line-clamp:2

注意:如果混合了单行省略和多行省略,会导致冲突,无法正确显示两行文本省略效果。

问题分析:

  • white-space:nowrap 会限制单行显示

nowrap会阻止文本换行,导致 -webkit-line-clamp失效。

解决办法:移除-webkit-line-clamp,让文本可以自动换行。

示例代码:

.two-lines{

display:-webkit-box;

-webkit-box-orient:vertical;

-webkit-line-clamp:2;

overflow:hidden;

text-overflow:ellipsis;

line-height:1.5;

}

  • 父容器没有固定宽度,文本可能不换行

解决办法:确保父元素有宽度限制(如 max-width)

  • IE/旧版浏览器不支持,需要使用max-height 和 ::after方案

或使用JavwScript库(如 clamp.js)

如果-webkit-line-clamp不兼容某些浏览器(如旧版firefox),可以使用max-height结合::after伪元素模拟省略号。

示例代码:

.falkback-ellipsis{

position:relative;

max-height:4.5rem;//3行1.5行高

line-height:1.5;

overflow:hidden;

}

.falkback-ellipsis::after{

content:"...";

position:absolute;

bottom:0;

right:0;

background:white;//防止文字穿透

padding-left:5px;

}

一、关键点总结

-webkit-line-clamp

适用于现代浏览器

兼容性:Chrome、Safari、Edge、Firefox

备注:最简单最推荐

max-height + ::after伪元素

兼容旧版浏览器,如IE、旧版Firefox

兼容性:所有浏览器

备注:需要手动调整max-height

二、属性详细,知识点

属性及其作用,罗列如下:

display:-webkit-box;

启用多行省略。

-webkit-box-orient:vertical;

垂直排列文本。

-webkit-line-clamp:2;

限制2行。

overflow:hidden;

隐藏溢出内容。

text-overflow:ellipsis;

显示省略号。

line-height:1.5;

控制行高,使得省略号对齐。

其它属性:

white-space:nowrap;

会强制单行显示。

相关推荐
yqcoder5 小时前
端经典面试题:为什么 0.1 + 0.2 !== 0.3?
前端·css
ZC跨境爬虫6 小时前
跟着 MDN 学 HTML day_12:(HTML网页图片嵌入)
前端·javascript·css·ui·html
用户059540174466 小时前
大模型记忆存储踩坑实录:LangChain 的 ConversationBufferMemory 让我排查了 6 小时
前端·css
剑神一笑9 小时前
CSS Animation Timeline 可视化动画编辑器:从关键帧到流畅动画
前端·css·编辑器
2401_878454539 小时前
HTML和CSS的复习2
前端·css·html
We་ct9 小时前
吃透现代CSS全技术体系
前端·css·css3·sass·postcss·预处理器
ZC跨境爬虫9 小时前
跟着 MDN 学 HTML day_11:(语义化容器全站重构+独立CSS拆分+字体合规引入)
前端·css·ui·重构·html·edge浏览器
何何____9 小时前
flex布局介绍
css
ZC跨境爬虫10 小时前
跟着 MDN 学 HTML day_10:(超链接核心语法+路径规则)
前端·css·笔记·ui·html·edge浏览器
ZC跨境爬虫18 小时前
跟着 MDN 学 HTML day_9:(信件语义标记)
前端·css·笔记·ui·html