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;

会强制单行显示。

相关推荐
不会敲代码13 小时前
前端组件化样式隔离实战:React CSS Modules、styled-components 与 Vue scoped 对比
css·vue.js·react.js
Sailing6 小时前
🚀 别再乱写 16px 了!CSS 单位体系已经进入“计算时代”,真正的响应式布局
前端·css·面试
球球pick小樱花1 天前
游戏官网前端工具库:海内外案例解析
前端·javascript·css
AAA阿giao2 天前
从零构建一个现代登录页:深入解析 Tailwind CSS + Vite + Lucide React 的完整技术栈
前端·css·react.js
掘金安东尼3 天前
用 CSS 打造完美的饼图
前端·css
掘金安东尼3 天前
纯 CSS 实现弹性文字效果
前端·css
前端Hardy3 天前
HTML&CSS&JS:打造丝滑的3D彩纸飘落特效
前端·javascript·css
前端Hardy3 天前
HTML&CSS&JS:丝滑无卡顿的明暗主题切换
javascript·css·html
parade岁月4 天前
Tailwind CSS v4 — 当框架猜不透你的心思
前端·css
前端Hardy4 天前
HTML&CSS&JS:基于定位的实时天气卡片
javascript·css·html