共计 906 个字符,预计需要花费 3 分钟才能阅读完成。
作为前端经常遇到的一个需求。对于一些比较长的文本做限制,不显示,或者显示省略号。今天特意整理了一下,做个备忘。
1. 超出固定长度显示 …
.class{
width: 400px;
overflow: hidden; // 这个是设置隐藏的。还有其他的,例如 scroll,是超出固定长度,底部显示滚动条的。
text-overflow: ellipsis; // 这个就是设置直接隐藏掉文字,还是显示 … 的。当前是显示省略号。直接省略是 clip
display: inline-block; // 根据不同标签 display,有的不用加。
}
2. 超出固定行数显示 …
超出固定行数。显示省略号,和上面差不多。overflow 和 text-overflow 见上方解释。
.class{
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2; // 这里就是设置超出几行隐藏
-webkit-box-orient: vertical;
display:-webkit-box; // 根据不同标签 display,有的不用加。或者设置成别的属性,自己可以随便试试
}
巨坑提醒 (多行隐藏)
有的时候,你按照上面的设置。就是不生效。或者本地生效了,react(或者 vue)打包到服务器上就不生效了。你可以在控制台看看。是不是 -webkit-box-orient 这个属性消失了。如果是这样的话,请看下面的解决办法。
// 办法 1。
直接在 style 里面写上 display:-webkit-box; 就行
// 办法 2
.class{
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
/* autoprefixer: off */ // 对,就是加这两个注释就行。
-webkit-box-orient: vertical;
/* autoprefixer: on */
display:-webkit-box;
}
不生效的原因。我也不清楚,网上说法也很多。这个英文话题,好像对原因做了 一些探讨,感兴趣的可以去看看。(https://github.com/postcss/au…)