CSS 实现多行文字截断

用js实现多行文字截断 https://blog.csdn.net/lqyygyss/article/details/81868679

以下用css实现。

有个三个盒子 div,粉色盒子左浮动,浅蓝色盒子和黄色盒子右浮动:

当浅蓝色盒子的高度低于粉色盒子,黄色盒子仍会处于浅蓝色盒子右下方。

如果浅蓝色盒子文本过多,高度超过了粉色盒子,则黄色盒子不会停留在右下方,而是掉到了粉色盒子下。

.wrap{
            height: 40px;
            line-height: 20px;
            overflow: hidden;
        }
        .wrap .text{
            float:right;
            margin-left: -5px;
            width: 100%;
            word-break: break-all;
        }
        .wrap::before{
            float:left;
            width: 5px;
            content:'';
            height: 40px;;
        }
        .wrap::after{
            float: right;
            height: 20px;
            line-height: 20px;
            width:4em;
            content:'...更多';
            margin-left:-4em;
            position: relative;
            text-align: right;
            left:100%;
            top:-20px;
            padding-right: 5px;
            background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,.7)),to(white))
        }

html结构如下

<div class="wrap">
        <div class="text">
            我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人
        </div>
    </div>

这里实现是伪元素before和after来实现的。

如果需要捕捉用户点击更多然后展开,可以用三个div来实现。

这里样式需要指定高度来设定,如果是动态设置的话,用内联样式覆盖,设置高度即可。

需要计算一行文字是多好,然后显示几行文字。

 

参考文章:https://segmentfault.com/a/1190000008649988 

这个用-webkit-line-clamp来实现,但是基本原理一模一样。你还是需要设置中间float的高度来实现。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值