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;

会强制单行显示。

相关推荐
燕落南枝1 天前
CSS 表单选择器与伪元素选择器详解
前端·css
狮子座的男孩2 天前
html+css基础:25、3D变换(3D空间与景深/透视点的位置/位移/旋转/缩放/多重变换/背部可见性)
css·经验分享·html·旋转·透视点·缩放/位移·3d变换/空间与景深
思码梁田2 天前
CSS 浏览器厂商前缀:从「写 5 遍」到现代自动化兼容
前端·css·css3·border-radius·1024程序员节·box-shadow·厂商前缀
feixing_fx3 天前
CSS Grid 入门:二维布局时代的降维打击
前端·css·前端框架·css3
2603_965896623 天前
CSS BEM 命名规范|组件化样式分层权威指南
前端·javascript·css
进击的明明3 天前
前端开发中的 BEM 国际命名规范:让 CSS 不再"打架"
前端·css·html
燕落南枝3 天前
CSS 分组选择器与链接伪类选择器详解
前端·css
溪语流沙3 天前
【每天一个CSS | Day33】聚焦即弹出的命令面板
前端·css·html5·组件·每日一练
燕落南枝3 天前
CSS 用户行为伪类::hover 与 :focus 详解
前端·css
钱栈up4 天前
前端改了三页、后端也动了,用户说「完全没变化」——我在 116 库上找到的三个真凶
css·数据库