这是一篇关于使用纯CSS实现多行文本截断的技巧文章,文章介绍了一种巧妙的方法,利用line-height
和伪元素来实现文本截断并显示省略号(…)。
文章指出,虽然现在已经有标准化的方式来处理单行文本截断,但多行文本截断仍然比较棘手。 本文介绍的纯CSS方法(无需JavaScript或服务器端操作)因其简洁性而备受推崇。 Firefox 68及以上版本开始支持-webkit-line-clamp
,使得该方法的浏览器兼容性得到了改善。
然而,文章重点介绍了一种更巧妙的CSS技巧,该技巧利用line-height
进行文本高度计算。 假设元素的line-height
为1.4rem,要显示最多三行文本,只需将max-height
设置为1.4rem * 3
即可。 为了方便使用,文章建议定义一个CSS变量--lh
来设置全局line-height
:
html { --lh: 1.4rem; line-height: var(--lh); }
然后,使用max-height
和overflow: hidden
实现文本截断:
.truncate-overflow { --max-lines: 3; max-height: calc(var(--lh) * var(--max-lines)); overflow: hidden; }
为了在截断文本后显示省略号,文章使用伪元素::before
在文本底部右角添加省略号:
.truncate-overflow::before { content: "..."; position: absolute; bottom: 0; right: 0; }
文章还指出,为了避免在文本行数少于--max-lines
时显示省略号,可以使用另一个伪元素::after
覆盖省略号:
.truncate-overflow::after { content: ""; position: absolute; right: 0; width: 1rem; height: 1rem; background: white; }
文章最后提到了使用CSS逻辑属性(如inset-inline-end
代替right
)以提高不同语言和文本流场景下的兼容性,并指出了该方法的一个局限性:省略号并非紧贴最后一个单词。 此外,文章还提及了该方法的一个潜在的无障碍问题:如果截断的文本中包含交互元素,这些元素虽然可聚焦但不可见。
以上是纯CSS的多线截断的详细内容。更多信息请关注PHP中文网其他相关文章!

对于Astro,我们可以在构建过程中生成大部分网站,但是有一小部分服务器端代码可以使用Fuse.js之类的搜索功能来处理搜索功能。在此演示中,我们将使用保险丝搜索一组个人“书签”


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能