超过两行就显示省略号(不完美兼容)

2,338 阅读2分钟

前言

超过几行显示省略号,在前端开发中,不止遇到一次这样的需求,但是每次想实现的时候,都会打开百度,然后输入"超过几行就显示省略号",然后打开某个网址,复制粘贴即可,就这样,几次下来,我也没有记住到底是怎么实现的,在今天的开发中,我又遇到了这种需求,为了以后抛弃百度,所以我决定把它深入的研究一下,看看它到底是怎么实现的

超过一行就显示省略号(可以兼容任意浏览器)

其实这个的话还是比较好实现的,废话不多说,先上css,然后一句句的解释

white-space: nowrap // 主要是用于控制不换行
text-overflow: ellipsis; // 超出父元素大小后显示省略号
overflow: hidden; // 超出父元素部分隐藏
word-break: break-all;// 这个属性怎样在单词内断行。其值表示可以在任意行换行

超过两行就显示省略号(兼容部分浏览器)

text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;// 设置为弹性盒?(后续会专门写一篇文章介绍)有兼容性问题
-webkit-line-clamp: 2;// 在一个块元素内显示的文本行数
line-clamp: 2;
-webkit-box-orient: vertical;

line-clamp依赖的属性:

  1. display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
  2. -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
  3. text-overflow,可以用来多行文本的情况下,用省略号“...”隐藏超出范围的文本 。

目前多行显示省略号,还是不能兼容所有的浏览器的,如果你是谷歌,那么你就可以使用了,但是如果是ie还是放弃吧,不知道小伙伴们有没有好的解决方案,欢迎前来讨论