如何用纯CSS实现多行省略的效果
Admin 2022-11-11 群英技术资讯 311 次浏览
这篇文章我们来了解“如何用纯CSS实现多行省略的效果”的内容,小编通过实际的案例向大家展示了操作过程,简单易懂,有需要的朋友可以参考了解看看,那么接下来就跟随小编的思路来往下学习吧,希望对大家学习或工作能有帮助。
文字溢出怎么展示,你的需求是什么?单行还是多行?截断,省略,自定义样式,自适应高度?在这里你都能找到答案。接下来我会由浅入深,从原理到实现,带你一步步揭开多行省略的面纱。我们先从最简单的单行溢出省略开始,
这是一个全宇宙统一的方案,没有太多的魔法
/* 原理:设置文字不换行,溢出后隐藏,截断显示省略符 */ .ellipsis { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
如何实现多行省略呢?先从最简单的line-clamp
开始吧。
通过 CSS 属性-webkit-line-clamp
可以把块容器中的内容限制为指定的行数
.ellipsis { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
属性的-webkit
前缀告诉我们事情似乎并不简单。是的,它只支持基于webkit
内核的浏览器,这对于移动端是很友好的,在安卓 2.3+,IOS 5.0+的设备上你可以直接将上述代码直接扔进去没啥问题,但如果要在PC端使用,需要关注下兼容性问题,
除了 PC 兼容性问题,line-clamp
的方案也不支持自定义省略样式,如果需要在省略符后面加文字,箭头等自定义样式,我们可能就得考虑其他方案了,比如:浮动。
什么!浮动也能实现多行省略?是的,下面我们用三个浮动盒子来模拟多行省略。首先准备三个盒子(文字盒,占位盒,自定义样式的省略盒)向右浮动,为了方便理解原理,我们给盒子增加不同的背景色,
<div class="box"> <!-- 文字盒子 --> <div class="box__text">腾讯以技术丰富互联网用户的生活。通过通信及社交软件微信和 QQ 促进用户联系,并助其连接数字内容和生活服务,尽在弹指间。</div> <!-- 占位盒子 --> <div class="box__placeholder"></div> <!-- 自定义省略盒子 --> <div class="box__more">...展开</div> </div> <style> .box__text { width: 100%; height: 60px; line-height: 20px; background-color: pink; float: right; } .box__placeholder { width: 60px; height: 60px; background-color: gray; opacity: 0.8; float: right; } .box__more { width: 60px; text-align: right; background: yellow; float: right; } </style>
接下来开始调整位置,先给文字盒一个负的左外边距,它的值刚好为占位盒的宽度,
.box__text { margin-left: -60px; }
这样一来就给了占位盒子空间,它会浮动到左边,和文字盒排在一排,
上图中,文字盒的高度小于占位盒高度,此时第一排高度为占位盒子高度,第一排没有多余空间,我们自定义的省略盒子只能排在第二排。试想一下,当文字盒的高度大于占位盒高度时(比如文字显示 4 行),会发生什么?
第一排的高度会被文字盒撑开,这个时候第一排有了多余空间,省略盒子能够挤进去。
Awesome
关于“如何用纯CSS实现多行省略的效果”的内容今天就到这,感谢各位的阅读,大家可以动手实际看看,对大家加深理解更有帮助哦。如果想了解更多相关内容的文章,关注我们,群英网络小编每天都会为大家更新不同的知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
层叠性,如有样式冲突,按CSS书写顺序,以最终样式为准。继承性,子标签将继承父标签的某些样式。优先级,当两个或多个规则同时应用于一个元素时,需要考虑权重。
在css中,可以利用position属性把导航栏固定住,只需要给导航栏元素添加“position:fixed;”样式,将导航栏相对于浏览器窗口进行固定定位即可,这样被固定的导航栏元素就不会随着滚动条的拖动而改变位置。
canvas与svg都是可以在浏览器上创建图形,因此,在html5中感觉canvas和svg很相似,但是实际上canvas与svg有着根本的区别。下面php中文网通过比较canvas和svg之间的不同来给大家总结了关于canvas与svg的区别。一起来看一看吧。
今天主要介绍一下CSS3 动画卡顿解决方案,原因就是主线程和合成线程的调度不合理。本文详解的介绍了解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
我们要点击链接进入想要浏览的页面,这个过程在HTML中要怎么实现?其实是将HTML文档和超链接链接到一起而形成的,今天小编就和大家一起学习HTML中的超链接标签使用教程吧!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008