很多有时候,我们希望文本溢出的时候通过显示省略号来提示,相信大多数都知道单行文本溢出通过css的文本溢出属性可以设置,那么,这个归纳一下单、多行文本溢出的情况。
一、单行文本
单行溢出,超出部分显示…,前提必须有宽度。
1 2 3 4
| width:300px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap;
|
二、多行文本
1 2 3 4 5
| display:-webkit-box; overflow:hidden; text-overflow:ellipsis; -webkit-line-clamp:2; -webkit-box-orient:vertical;
|
适用范围:因为使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;
注:
1.-webkit-line-clamp用来限制在一个块元素显示的文本的行数。为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:
2.display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
3.-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
为了做到更好的兼容性,这时候需要借助伪类元素来实现。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| p{ position: relative; line-height: 20px; max-height: 40px; overflow: hidden; } p::after{ content: "..."; position: absolute; bottombottom: 0; rightright: 0; padding-left: 40px; background: -webkit-linear-gradient(left, transparent, #fff 55%); background: -o-linear-gradient(rightright, transparent, #fff 55%); background: -moz-linear-gradient(rightright, transparent, #fff 55%); background: linear-gradient(to rightright, transparent, #fff 55%); }
|
-webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。限制在一个块元素显示的文本的行数。为了实现该效果,它需要组合其他外来的WebKit属性。