Skip to content
文章目录

多行文本缩略并支持展开收缩

关键点

  • css 样式
css
.test {
  line-height: 1.5;
  /* 3em是这么计算来的 line-height*2=3em, 
  表示最大高度为line-height的2倍, 也就是说最多只能显示2行 */
  /* 如果要表示3行,则 line-height*3=4.5em, 将max-height设置为4.5em即可 */
  /* 如果要表示4行,则 line-height*4=6em, 将max-height设置为6em即可,其他行数依次类推 */
  max-height: 3em;
  /* 当内容超出max-height的高度,则隐藏 */
  overflow: hidden;
  /* 这是为了让末尾长的英文单词和中文强制显示在一行,如果超出宽度,则将超出部分强制换行 */
  word-break: break-all;
  /* 这是为了让多行内容中的按钮定位准备的 */
  position: relative;
}
  • 如果offsetHeight>scrollHeight则表示文本超出指定行数,需要展示展开/收缩按钮

简略实现

说明
实现省略号和一个展开按钮
说明
实现展开/收缩功能
说明
这里是测试刚好两行是否正常
说明
这里是测试刚好一行是否正常

补充

如果只是实现多行文本溢出显示省略号,也可以使用这个 js 库

shell
pnpm add clamp.ts

npm clamp.ts

或者这个 vue 组件

pnpm add vue-clamp

npm vue-clamp

< vue-clamp >:轻松实现多行文本截断

参考资料

CSS 实现多行文本“展开收起”

小程序实现多行文本”全文收起“

多行文本溢出显示省略号(…)全攻略

前端多行文本超出省略(兼容所有浏览器)