CSS3 之后,大多数浏览器已经支持 text-overflow:ellipsis
,这个属性可以用来实现单行文本溢出显示省略号 …
,但是它并不支持多行文本溢出显示省略号。
移动端web开发比较简单,绝大部分浏览器都是 Webkit 内核,可以直接使用 Webkit 的私有属性 -webkit-line-clamp
;注意,这是一个不规范的属性。
-webkit-line-clamp
用来限制在一个块元素显示的文本的行数。为了实现该效果,它需要组合其他的 Webkit 属性。
display: -webkit-box
必须结合的属性,将对象作为弹性伸缩盒子模型显示-webkit-box-orient
必须结合的属性,设置或检索伸缩盒对象的子元素的排列方式(从上到下排列子元素的值都可以,vertical 或 block-axis)text-overflow: ellipsis
可以用来多行文本的情况下,用省略号…
隐藏超出范围的文本。(最新版浏览器不用这个也可以显示省略号)overflow: hidden
这个也是必须的
在实现多行文本溢出显示省略号的效果之后,发现一个问题,当省略号处刚好是 a
链接时(a
标签没有 href
属性时不存在问题),省略号显示异常,目测是 Webkit 的一个 bug,解决方法是 a
标签中的文字外面包一个其他标签(比如 span
,符合嵌套规范的其他标签也可以),就可以绕过去了。