解决多行文本换行省略显示失效的问题

简介: 解决多行文本换行省略显示失效的问题

前言


相信大家的前端工程化项目中,都会用到 autoprefixer ,它让我们无需关系要为哪些浏览器加前缀。配合 postcss 一起使用会更好。


但同时它也会带来一些问题,例如它不会帮你添加 -webkit- 之类的 prefixer。虽然它会帮你增加新前缀,但也会帮你删除老式过时的代码。


正文


需求来了


例如,我们有一个需求,文本最多显示两行,溢出部分使用省略号表示,要怎么做呢?


代码实现


心想 so easy 啦,然后叭拉一下写出来下面的代码,页面热更新好了,擦了擦眼镜,不是眼花了吧,没成功?(内心十万个马儿奔腾...)



// html
<div className={style.text}>关关雎鸠,在河之洲。窈窕淑女,君子好逑。参差荇菜,左右流之。窈窕淑女,寤寐求之。求之不得,寤寐思服。悠哉悠哉,辗转反侧。参差荇菜,左右采之。窈窕淑女,琴瑟友之。参差荇菜,左右芼之。窈窕淑女,钟鼓乐之。</div>
// css
.text {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}


结果


预期结果是:✅


223.webp.jpg

预期丰满


可实际上是:


55.webp.jpg

现实骨感

找原因 Why


为什么会这样呢?细心一看,会发现编译后的 CSS 中 -webkit-box-orient: vertical; 不见了。

7.webp.jpg

编译后的CSS


然后就大概能猜出是什么玩意搞鬼了,不是 postcss,就是 autoprefixer 了。然后搜了一番,发现杀人凶手就是 autoprefixer,它把我的 -webkit-box-orient: vertical 吃了(上面提过,会删掉一些过时的规则)


解决方法


  1. 在 postcss-loader 增加 autoprefixer({ remove: false })(不推荐)
  2. 只移除过时前缀,不自动增加新前缀:autoprefixer({ add: false })(非本文问题解决方案,仅扩展用)
  3. 使用 Control Comments(控制注释,块级)(有效)


.text {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    /*! autoprefixer: off */
    -webkit-box-orient: vertical;
    /*! autoprefixer: on */
}


  1. 使用 Control Comments(控制注释,单行)(无效)
    网上很多所使用这种方式的,但我测试无效,原因未知。如用补充,欢迎指出修正,谢谢!


.text {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    /*! autoprefixer: ignore next */
    -webkit-box-orient: vertical;
}


  1. 增加内联样式 style={{WebkitBoxOrient: 'vertical'}}(有效)

在上面列举的几种方法中,个人推荐第 3 种方式。


参考


目录
相关文章
|
小程序 Android开发 网络架构
uni-app中使用scroll-view滚到底部时多次触发scrolltolower
uni-app中使用scroll-view滚到底部时多次触发scrolltolower
1611 0
uni-app中使用scroll-view滚到底部时多次触发scrolltolower
|
4月前
|
人工智能 移动开发 JavaScript
类似ant design和element ui的八大Vue的UI框架详解优雅草卓伊凡
类似ant design和element ui的八大Vue的UI框架详解优雅草卓伊凡
772 3
|
6月前
|
缓存 JSON 前端开发
最受欢迎的三方库之harmony-utils
harmony-utils 是一款功能丰富且易于使用的 HarmonyOS 工具库,涵盖 APP、设备、屏幕、授权、通知、文件操作、加解密等多种常用功能,帮助开发者高效构建鸿蒙应用。体积小巧(仅约 130KB),性能优越,适用于 OpenHarmony API 12 及以上版本。
292 0
|
JavaScript 算法 API
Vue 3有哪些新特性
【8月更文挑战第16天】Vue 3有哪些新特性
945 1
|
小程序 开发工具 Android开发
微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(二)
微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(二)
1083 0
PandasTA 源码解析(十五)(2)
PandasTA 源码解析(十五)
169 0
|
传感器 人工智能 网络协议
工业机器人应用实践之玻璃涂胶(篇一)
工业机器人应用实践之玻璃涂胶(篇一)
344 1
|
安全 JavaScript
微信公众号-- 微信分享功能(分享到朋友和朋友圈显示图片和简介)
页面设置一个隐藏的图片,宽高都是300像素,微信就会抓取这张图片做为分享图片
15732 0
|
JavaScript
vue路由跳转报错Uncaught SyntaxError:Unexpected token ‘<‘ (at chunk-elementUI.aeed1b74.js:1:1)Uncaught Synt
vue路由跳转报错Uncaught SyntaxError:Unexpected token ‘<‘ (at chunk-elementUI.aeed1b74.js:1:1)Uncaught Synt
1029 0
|
缓存 小程序 API
企业微信小程序从开发调试到发布的全流程
企业微信小程序从开发调试到发布的全流程
1411 0
企业微信小程序从开发调试到发布的全流程