微信小程序:多行文本溢出出现多余的文字-webkit-line-clamp

多行文本溢出隐藏css样式

.line-2 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2; /*限制文本行数*/
  -webkit-box-orient: vertical;
  word-break: break-all; /* 追加这一行代码 */
}

模拟器上表现良好,iOS真机测试发现有文字漏出来了
在这里插入图片描述
将文本高度设置为自动就正常了

line-height: normal

在这里插入图片描述

参考
设置line-height:1并设置超出省略时,ios出现内容溢出

### 微信小程序多行文本溢出隐藏的解决方案 在微信小程序中处理多行文本溢出隐藏问题,可以利用CSS样式来控制文本显示行为。对于单行文本溢出,可以通过设置`text-overflow: ellipsis; white-space: nowrap; overflow: hidden;`等属性实现[^1]。 然而针对多行文本的情况,则需采取不同策略: #### 使用纯CSS方法(适用于部分浏览器) ```css .multi-line-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* 控制最大行数 */ overflow: hidden; } ``` 此段代码能够有效截断超过指定行数的文字,并自动添加省略号标记。 但是需要注意的是,在某些环境下该方式可能无法正常工作,特别是涉及到跨平台的小程序应用时。因此推荐采用更稳健的方式——通过JavaScript逻辑配合wxml结构共同完成这一需求[^2]。 #### 结合WXML与JS的方法 这种方法不仅解决了兼容性问题,还提供了更好的用户体验,比如“查看全部”按钮的功能。下面是一个简单的例子说明如何做到这一点: ##### WXML文件片段 ```html <view class="content"> <!-- 文章内容 --> <text decode="{{true}}" wx:if="{{!showAll}}">{{shortContent}}</text> <text decode="{{true}}" wx:else>{{fullContent}}</text> <!-- 查看更多/收起按钮 --> <button bindtap="toggleShow"> {{ showAll ? '收起' : '查看全文'}} </button> </view> ``` ##### JS页面逻辑 ```javascript Page({ data: { fullContent: "这是一篇很长的文章,这里只是其中一部分的内容预览...", shortContent: "", showAll: false, }, onLoad() { const maxLength = 80; // 自定义摘要长度 this.setData({ shortContent: (this.data.fullContent.length > maxLength) ? `${this.data.fullContent.slice(0, maxLength)}...` : this.data.fullContent }); }, toggleShow() { this.setData({ showAll: !this.data.showAll }); } }); ``` 上述代码实现了根据设定的最大字符数量裁剪文章内容,并提供了一个切换视图状态(`showAll`) 的函数用于响应用户的交互操作,从而达到点击按钮后展开或收缩文本的效果[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值