多行文本截断并出现省略号 纯CSS解决方案

本文分享了一种纯CSS解决多行文本截断的问题,无需使用JavaScript。通过浮动元素和绝对定位,实现了在多行文本超出指定区域时显示省略号,兼容性良好。详细代码和原理分析帮助理解这一技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2016/4/18

ps:博主上班半个月啦 一直在忙 万事开头难。。
前几天碰到一个CSS的问题 多行文本的截断 还不能使用JS来做 找了又找 终于发现国外有个非常好的想法来跟大家分享一下,具体网站忘记了。。。如果有记得的 发给我一下 ,毕竟是人家的创意。。。
如下图:
遇到的问题


大家都知道,text-overflow是实现单行文本溢出隐藏的方式

    overflow: hidden;/*溢出隐藏*/
    text-overflow: ellipsis;/*文本溢出省略号*/
    white-space: nowrap;/*不换行*/

通过上述代码再加上对宽度的设定,可以实现 如:

这里写图片描述

这样的标题单行隐藏,看上去不错~


在网上可以查找到一些方式来进行多行隐藏的处理,如:http://www.css88.com/archives/5206
这里面写了几种方式,其中对webkit内核的浏览器的处理方式可以学习一下。
今天介绍的方案更取巧一些,兼容性也会更好一些。
废话不说了,上代码
html代码

    <div class="wrap">
       <div class="prop"></div>
       <div class="main">
    我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤我叫王大锤
       </div>
       <div class="end"><div class="realend">...</div></div>
    </div>

CSS代码

        /********多行文本的省略问题  350px********/
        .wrap {
            width: 350px;
            height: 200px;
            line-height: 25px;
            overflow:hidden;
            margin-right:-70px;
        }
        .prop {
            float: left;
            width: 1px;
            height: 200px;
            background: transparent;
        }
        .main {
            float: right;
            width: 349px;
        }
        .end {
            float: right;
            position: relative;
            width: 1px;
            background: #FFA;
        }
        .realend {
            position: absolute;
            width: 27px;
            top: -23px;
            left: 323px;
            background: #fff;
            font-size: 13px;
        }

这样一写,不用任何js,直接就可以实现多行文本省略的问题了。如果仅仅需要解决问题,后续讲解不用看了。。T-T

原理分析

大家都知道浮动,三个不同大小的div浮动起来,应该是这样的:
这里写图片描述

如果div2的高度变大的话,三个div的位置应该是这样的
这里写图片描述

OK 重点来了 如果 我们有个包含 “……” 的div 是相对于div3 做的绝对定位 那么情况是这样的:
这里写图片描述

当div2的高度变大,那么情况如下:
这里写图片描述

这就是一个多行文本省略取巧的纯CSS解决方案。

实在忘记是哪个国外的网站了,不过这个idea 非常好 感谢大家观看~~。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值