在基于-webkit内核的浏览器中,多行文本限制行数,比如超过2行时,第二行结尾用三个点表示,实现如下:
h4{
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp:2;
-webkit-box-orient: vertical;
}
可以看出,后面两行有 -webkit 前缀,就是这个属性还没正式化,所以在webpack等打包器工作时会自动舍弃掉不规范的属性,导致没有生效。如何解决呢?除了修改繁琐的配置文件让把不符合规范的属性放行之外(实际上这样做也有安全隐患),还有个小技巧——把属性写到纯css中:在根html中使用<style>添加css(不是js中的css,也不是less、sass等),定义类,然后再使用的时候引用类名即可:
1,定义类
.line-clamp2{
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp:2; /* 2表示限制为2行 */
-webkit-box-orient: vertical;
}
2,页面内引用(react)
<h4 className={'line-clamp2'}>{item.title}</h4>
附:单行文本超出给定宽度出现三个点的实现方法
h4{
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
width: 6rem;
}