css中限制行数( -webkit-line-clamp)出现三个点在打包时失效的解决方案

本文介绍在基于-webkit内核的浏览器中,如何通过CSS属性限制多行文本显示并用省略号表示超出部分的方法。同时,提供了一个实用的技巧来避免webpack等打包器自动舍弃非正式规范的CSS属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在基于-webkit内核的浏览器中,多行文本限制行数,比如超过2行时,第二行结尾用三个点表示,实现如下:

h4{
    display: -webkit-box; 
    overflow: hidden; 
    -webkit-line-clamp:2; 
    -webkit-box-orient: vertical;
}

可以看出,后面两行有 -webkit 前缀,就是这个属性还没正式化,所以在webpack等打包器工作时会自动舍弃掉不规范的属性,导致没有生效。如何解决呢?除了修改繁琐的配置文件让把不符合规范的属性放行之外(实际上这样做也有安全隐患),还有个小技巧——把属性写到纯css中:在根html中使用<style>添加css(不是js中的css,也不是less、sass等),定义类,然后再使用的时候引用类名即可:

1,定义类

.line-clamp2{
    display: -webkit-box; 
    overflow: hidden; 
    -webkit-line-clamp:2; /* 2表示限制为2行 */
    -webkit-box-orient: vertical;
}

 

2,页面内引用(react)

<h4 className={'line-clamp2'}>{item.title}</h4>

附:单行文本超出给定宽度出现三个点的实现方法

h4{
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    width: 6rem; ​​​​
}   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值