单行文本溢出换行
现在已经是 2019 年 8 月了,市面上绝大部分浏览器都已经较好的支持 css3 了,直接使用 css3 的 text-overflow:ellipsis.
1 | overflow: hidden; |
需要注意的是,有一小部分浏览器需要添加宽度进行兼容.
那如果说一定要用 js 来解决这个问题,就只有获取当前文本宽度判断是否超出设定宽度即可.
多行文本溢出换行
其实这才是这边文章的重点内容.事实上多行文本溢出换行也不复杂,只是记不住 -__-! 直接看代码:
1 | overflow: hidden; |
注意:
因为使用来-webkit-前缀,所以仅支持 webkit 内核浏览器
-webkit-line-clamp 用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的 WebKit 属性。
display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示
-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式
可事实上国内还有好的 ie 用户,你要和产品讲道理那是行不通的.那要如何兼容非 webkit 内核浏览器呢,答案只有一个.
在这种情况下我们只能用 js 来获取当前文本高度,如果当前文本高度超过来最大高度则循环删除最后一位字符,直到当前高度等于最大高度,然后将最后三个字符替换为省略号.
1 | // 假设当前元素id为id,最大高度为max |
[越努力,越幸运!]