html字体超出后隐藏省略号,CSS控制文字超出部分省略号显示

一:单行文本显示不完时,我们只需要设置单行文本的宽度,不允许换行,溢出隐藏及换行省略四个属性即可:

p{

max-width: 100px;

overflow:hidden;

text-overflow:ellipsis;

/*禁止换行显示*/

white-space:nowrap;

background-color:#ffe51a;

}

哈哈哈哈哈哈哈,哈哈哈哈哈,哈哈哈哈哈哈哈

d848fd1acc95

二:当我们想要设置多行文本显示不完省略号时:

p {

width: 100px;

overflow:hidden;

text-overflow:ellipsis;

display:-webkit-box;

/*控制在3行*/

-webkit-line-clamp:3;

-webkit-box-orient:vertical;

background-color:#ffe51a;

}

d848fd1acc95

-webkit-line-clamp 其实是一个不规范属性,使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;

它用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他外来的WebKit属性。

display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。

-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。

text-overflow,可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本 。

三:使用伪元素:after实现句尾省略号效果,但是这种办法未超出部分也会显示省略号,可以使用js控制进行兼容

p{

position: relative;

max-width: 100px;

line-height: 20px;

max-height: 40px;

overflow: hidden;

}

p::after{

content: "...";

position: absolute;

bottom: 0;

right: 0;

padding-left: 40px;

background: -webkit-linear-gradient(left, transparent, #fff 55%);

background: -o-linear-gradient(right, transparent, #fff 55%);

background: -moz-linear-gradient(right, transparent, #fff 55%);

background: linear-gradient(to right, transparent, #fff 55%);

}

d848fd1acc95

说明:

1.将height设置为line-height的整数倍,防止超出的文字露出。

2.给p::after添加渐变背景可避免文字只显示一半。

3.由于ie6-7不显示content内容,所以要添加标签兼容ie6-7(如:…);兼容ie8需要将::after替换成:after。

四:简单粗暴的方法,使用js截取固定的要显示字符的个数,判断字符的长度是否大于要显示的字数,大于则截取并加上省略号,否则全部显示

d848fd1acc95

最多显示十个字符,这样省略号不一定是在行尾,不推荐。

原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe

95后前端妹子一枚,爱阅读,爱交友,将工作中遇到的问题记录在这里,希望给每一个看到的你能带来一点帮助。

欢迎留言交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值