用CSS控制文本显示行数

在平时做项目中,经常会碰到这样的需求,文本最多显示几行,其余用省略号...代替

下面的less代码即可实现

.t-ellipsis(@lines){

        overflow:hidden;

        text-overflow: ellipsis;

        display: box;

        display: -webkit-box;

        -webkit-line-clamp: @lines;

        /*! autoprefixer: off */

        -webkit-box-orient: vertical;

        /* autoprefixer: on */

}

对应的css代码为

.detail-text{

        overflow: hidden;

        text-overflow: ellipsis;

        display: box;

        display: -webkit-box;

        -webkit-line-clamp: 3;

        /*! autoprefixer: off */

        -webkit-box-orient: vertical;

        /* autoprefixer: on */

}

在使用时,直接掉该函数,传入显示的行数即可

例如:让有detail-text类的元素显示3行

.detail-text{

         .t-ellipsis(3);

}

注意:

-webkit-box-orient: vertical;这行样式上下需要加上上文中的注释,否则用webpack后-webkit-box-orient样式会丢失

参考资源链接:[CSS文本超出2行就隐藏并且显示省略号](https://wenku.youkuaiyun.com/doc/6452558bfcc5391368007ba4?utm_source=wenku_answer2doc_content) 要实现文本超出指定行数时自动隐藏并显示省略号,可以使用CSS3的几个特定属性。当需要隐藏超出的文本显示省略号时,通常会用到`overflow`、`text-overflow`以及`white-space`这三个属性。这些属性可以帮助我们控制文本溢出的行为,但它们仅适用于单行文本。对于多行文本显示和隐藏,我们可以利用一些非标准但广泛支持的CSS属性,例如`-webkit-line-clamp`,来实现类似的效果。 具体操作如下: ```css .clamp { display: -webkit-box; /* 弹性盒子模型 */ -webkit-box-orient: vertical; /* 设置弹性盒子的方向为垂直 */ -webkit-line-clamp: 2; /* 限制在2行显示 */ overflow: hidden; /* 隐藏超出的部分 */ text-overflow: ellipsis; /* 使用省略号表示被隐藏的部分 */ } ``` 在上述代码中,`.clamp`类将会应用到HTML元素上,使得其中的文本在超出两行时会被隐藏,并在末尾显示省略号。需要注意的是,`-webkit-line-clamp`是一个非标准属性,它主要用于基于WebKit的浏览器,例如Chrome和Safari。其他浏览器可能不支持这一特性,因此在使用时需要考虑到浏览器兼容性问题。 为了确保网页的可访问性和用户体验,在设计这样的布局时,还应当考虑到屏幕阅读器等辅助技术。目前的实现方式可能不完全支持无障碍特性,因此需要开发者根据实际应用场景和用户需求进行权衡。 参考资源链接:[CSS文本超出2行就隐藏并且显示省略号](https://wenku.youkuaiyun.com/doc/6452558bfcc5391368007ba4?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值