1. 首页
  2. 小程序

文本溢出时,如何显示为省略号

本文作者:无双,GitHub链接:https://github.com/wushuangzh…

更多内容查看开发者社区/更多招聘信息

本文介绍在百度智能小程序开发中,如何将溢出的文本显示为省略号。欢迎开发者分享您在开发智能小程序中的经验心得,我们会通过智能小程序技术团队的社区渠道把你的经验分享给更多开发者朋友,投稿地址:smartprogramtech@baidu.com。

目前在移动端开发的展示界面中,如果一段文本的数量过长,受限于屏幕的宽高等因素,有可能不能完全显示,为了提高用户的使用体验,这个时候就需要我们把溢出的文本显示成省略号。

接下来我们来看一下对于下面这一段文本内容,我们可以如何实现行文本溢出的样式吧:

  1. 单行文本溢出
  2. 多行文本溢出:5行以下的内容全显示;5行以上(含5行)只显示5行,超出部分省略号展示;5行以上显示展开按钮。点击展开, 显示全部内容以及收起按钮;点击收起,折叠内容并显示展开按钮。

悠悠竹林,万顷翠色,几多清幽和宁静,自然没有城市的喧嚣和杂乱。若有雨徐徐飘落,在绿绿的枝叶上腾起袅袅轻烟,如雾,如云,更似一幅水墨丹青,流芳沁馨,不知泊了谁的梦怀。更醉人的是那动听的雨声,疏疏落落,潇然成音成曲。此时,雨为纤指竹为弦,清风流韵,细弹心语,听雨的人,便是知音。

单行文本溢出

1.在js文件中,输入文本内容:


Page({ data: { content:'人要拿得起,也要放得下。拿得起是生存,放得下是生活;拿得起是能力,放得下是智慧。有的人拿不起,也就无所谓放下;有的人拿得起,却放不下。拿不起,就会一事无成;放不下,就会疲惫不堪。人生外在的一切最终丝毫也带不走,晚放下不如早放下。放下无谓的负担,才能一路自在。' } });

2.在css文件中使用text-overflow: ellipsis设置行尾显示尾省略号:


white-space: nowrap; /* 不换行 */ overflow: hidden; /* 超出隐藏 */ text-overflow: ellipsis; /* 超出部分显示省略号 */

多行文本溢出

5 行以下的内容全显示

1.在js文件中,输入文本内容:


Page({ data: { content:'人要拿得起,也要放得下。拿得起是生存,放得下是生活;拿得起是能力,放得下是智慧。有的人拿不起,也就无所谓放下;有的人拿得起,却放不下。拿不起,就会一事无成;放不下,就会疲惫不堪。人生外在的一切最终丝毫也带不走,晚放下不如早放下。放下无谓的负担,才能一路自在。' } });

2.在css文件中使用text-overflow: ellipsis设置行尾显示尾省略号,多行文本溢出:


display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; /* 指定显示文本的行数 */ overflow: hidden; /* 超出隐藏 */

5行以上(含5行)只显示5行,超出部分省略号展示

1.在js文件中,输入文本内容:


Page({ data: { content:'人要拿得起,也要放得下。拿得起是生存,放得下是生活;拿得起是能力,放得下是智慧。有的人拿不起,也就无所谓放下;有的人拿得起,却放不下。拿不起,就会一事无成;放不下,就会疲惫不堪。人生外在的一切最终丝毫也带不走,晚放下不如早放下。放下无谓的负担,才能一路自在。' } });

2.在css文件中使用text-overflow: ellipsis设置行尾显示尾省略号,多行文本溢出:


display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; /* 指定显示文本的行数 */ overflow: hidden; /* 超出隐藏 */ text-overflow: ellipsis; /* 超出部分显示省略号 */

5行以上显示展开按钮

点击展开, 显示全部内容以及收起按钮;点击收起,折叠内容并显示展开按钮,更多详细内容可在工具中导入代码片段查看:swanide://fragment/598981d541fda485a1715266effc213a1590053197948 。

1.在swan文件中输入文本内容,并设置按钮:


<view class="container"> <view class="title"> <text class="title_txt">hello,我是测试demo</text> </view> <view class="content {{isShow ? 'on' : ''}}"> 悠悠竹林,万顷翠色,几多清幽和宁静,自然没有城市的喧嚣和杂乱。若有雨徐徐飘落,在绿绿的枝叶上腾起袅袅轻烟,如雾,如云,更似一幅水墨丹青,流芳沁馨,不知泊了谁的梦怀。更醉人的是那动听的雨声,疏疏落落,潇然成音成曲。此时,雨为纤指竹为弦,清风流韵,细弹心语,听雨的人,便是知音。 </view> <block s-if="{{lineNum > 4}}"> <view class="btn" bindtap="open">{{isShow ? '收起' : '展开'}}</view> </block> </view>

2.在css文件中设置文本显示行数:


.title { display: flex; flex-direction: row; justify-content: center; align-items: center; padding: 25rpx; } .title_txt { font-size: 34rpx; color: #2b2b2b; } .content { text-indent: 2em; height: auto; overflow: hidden; /* 超出隐藏 */ text-overflow: ellipsis; /* 超出部分显示省略号 */ display: -webkit-box; -webkit-line-clamp: 5; /* 指定显示文本的行数 */ -webkit-box-orient: vertical; line-height: 30px; /* 规定的行高 */ padding: 0 25rpx; font-size: 30rpx; color: #888; } .content.on { display: block; text-overflow: clip; overflow: visible; } .btn { text-align: center; color: #333; }

3.在 js文件中设置默认收起状态:


/** * 默认收起状态,isShow作为控制显隐的开关 * 点击按钮isShow的状态值取反即可。 * 获取行数的计算方式: * 行数 = 内容高度/ 行高 */ Page({ data: { isShow: false, lineNum: 5 }, open() { this.setData({ isShow: !this.data.isShow }); }, onShow() { const query = swan.createSelectorQuery(); query.select('.content').boundingClientRect(); query.exec(res => { const LineHeight = 30; // 行高 const LineNum = res[0].height / LineHeight; // 行数 if (LineNum < 5) { this.setData({ lineNum: LineNum }); } }); } });

总结

详细内容可在开发者工具预览效果中查看。关于样式显示的更多小技巧,也欢迎大家在评论区多多交流呀~

最后,感谢各位开发者积极投身百度小程序的开发当中,在开发过程中有任何问题都可以在社区与官方或其他开发者进行互动,也可将您的意见发送邮件至smartprogramtech@baidu.com,期待您的参与!

作者:百度小程序技术
链接:https://segmentfault.com/a/1190000022942268

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:文本溢出时,如何显示为省略号

链接:https://www.javascriptc.com/4328.html

« Function Component 入门
react-easy-state 源码»
Flutter 中文教程资源

相关推荐

QR code