CSS实现单⾏、多⾏⽂本溢出显⽰省略号的实现⽅法⼀、单⾏溢出
1,单⾏溢出,超出部分显⽰...或者截取。前提必须有宽度。
CSS:{width:xxpx;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;},截取为clip;
实现代码:
width:300px;
overflow: hidden;
text-overflow:ellipsis;
whitewhite-space: nowrap;
效果如图:
但是这个属性只⽀持单⾏⽂本的溢出显⽰省略号,如果我们要实现多⾏⽂本溢出显⽰省略号呢。
接下来重点说⼀说多⾏⽂本溢出显⽰省略号,如下。
⼆、多⾏溢出
{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
实现⽅法:
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
效果如图:
适⽤范围:
因使⽤了WebKit的CSS扩展属性,该⽅法适⽤于WebKit浏览器及移动端;
注:
1.-webkit-line-clamp⽤来限制在⼀个块元素显⽰的⽂本的⾏数。为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:
2.display: -webkit-box; 必须结合的属性,将对象作为弹性伸缩盒⼦模型显⽰。
3.-webkit-box-orient 必须结合的属性,设置或检索伸缩盒对象的⼦元素的排列⽅式。
实现⽅法:
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%);
css特效文字background: -o-linear-gradient(rightright, transparent, #fff 55%);
background: -moz-linear-gradient(rightright, transparent, #fff 55%);
background: linear-gradient(to rightright, transparent, #fff 55%);
}
适⽤范围:
该⽅法适⽤范围⼴,但⽂字未超出⾏的情况下也会出现省略号,可结合js优化该⽅法。
注:
1.将height设置为line-height的整数倍,防⽌超出的⽂字露出。
2.给p::after添加渐变背景可避免⽂字只显⽰⼀半。
3.由于ie6-7不显⽰content内容,所以要添加标签兼容ie6-7(如:<span>…<span/>);兼容ie8需要将::after替换成:after。⼩编补充:
ie核⼼的浏览器⼀定要定义line-height与⾼度,-webkit-line-clamp意思就是⼏⾏,例如
line-height: 20px;
max-height: 40px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
-webkit-line-clamp
-webkit-line-clamp 是⼀个不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。
限制在⼀个块元素显⽰的⽂本的⾏数。为了实现该效果,它需要组合其他外来的WebKit属性。常见结合属性:display: -webkit-box; 必须结合的属性,将对象作为弹性伸缩盒⼦模型显⽰。
-webkit-box-orient 必须结合的属性,设置或检索伸缩盒对象的⼦元素的排列⽅式。
text-overflow,可以⽤来多⾏⽂本的情况下,⽤省略号“...”隐藏超出范围的⽂本。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论