多行文本缩略并支持展开收缩
关键点
- 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
或者这个 vue 组件
pnpm add vue-clamp