前段时间接到一个需求,关于文字展开和收起的,走了很多路,踩了很多坑。
在这个夜深人静,想你想到泪流的时候,决定记录分享一下。
需求如下所述:
- 未满两行时
- 超过两行,少于7行时
未展开
展开
- 超过7行时
未展开
展开
就如上面所述,我倒是第一次做这种需求,于是就网上搜索下案例,然后就搜出下面这篇文章:
文章链接:https://juejin.cn/post/6963904955262435336#comment
点赞和评论都挺多的,于是就用他的方案来实现了。
但是后面发现有些问题,其实他的文章后面的评论区也有读者提出来了问题。
其实我觉得问题也不大,于是问哦下设计大佬
显然,就收到了拒绝。
被拒绝是十分正常不过的事情了,不过这比被发好人卡杀伤力少太多了,不信你听听:
“你真的挺好的,人也很优秀,但是配不上我”
这矫情的措辞结构
经历过的人会懂
可能是孤独让情绪变得脆弱,毫无头绪的我,开始寻求网友的帮助。
群里就有大佬提供了这个
https://codepen.io/xboxyan/pen/LYWpWzK
这个跟方法跟 上面介绍的那篇文章的方法差不多
不同点在于这个方法是利用div高度来限制文字显示的行数的。
上面文章里是利用-webkit-line-clamp来限制行数。
然后它的省略号也是在label按钮里模拟出来的。
上面文章里的方法的缺点上面已经说了,那么群里推荐的方法是否也能解决问题呢?
其实不行,本来在pc上看确实是没问题了,但是在安卓和ios看发现不太行。
发现在ios上限制7行的时候,显示除了7.5行,就是多了半行。或者 总有一个手机对不齐(我们要适配各种安卓机和低端ios)
虽说两个方法都有缺点,但是都有优点,于是结合两者的优点就进行了我的方案的实现。
<input
type=“checkbox”
class=“toggleInput”
id=“toggleInput”
v-model=“isUnFold”
/>
<label
class=“btn”
for=“toggleInput”
v-if=“isMoreThan2Line && (!isUnFold || isMoreThan7Line)”
{{ isUnFold ? ‘展开’ : ‘收起’ }}</label
概述文字概述文字概述文字概述文字概
述文字概述文字概述文字概述文字概述文字概述文字
<label
class=“btn-no-absolute”
for=“toggleInput”
v-if=“isUnFold && !isMoreThan7Line”
收起</label
首先,跟上面那篇文章里介绍的一样,用input来记录当前是展开还是收起状态,
不同点是我用了两个label按钮。
一个label
是不用定位的,直接跟在文字的末尾。这种是作为文字超过两行,但是未超过七行,展开的状态。
前面的label则是绝对定位到文字盒子的末尾。作为 文字超过两行未展开,展开后文字超过七行的情况。
可以看下css的实现
.activity-desc-wrapper {
display: flex;
.toggleInput {
display: none;
}
.toggleInput:checked + .activity-desc {
-webkit-line-clamp: 7;
}
.activity-desc {
padding: 0;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/42feff6bf611b7b1242709b6dcba011d.jpeg)
更多面试题
**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等
并且会持续更新!**
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/42feff6bf611b7b1242709b6dcba011d.jpeg)
更多面试题
**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等
[外链图片转存中…(img-4fTRYIJA-1712366159296)]