单行文本溢出和多行文本溢出显示省略号

对于单行文本溢出,css 代码如下:

.test{
    width: value;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

'value' 为想要设置的宽度,对于多文本溢出,需要用到 js,代码如下:

textOverflow('.test')
function textOverflow(obj){
    var oH, oText;
    oH    = $(obj).height();
    oText = $(obj).children();
    if (oText.outerHeight() > oH) {
        while (oText.outerHeight() > oH) {
            oText.html(oText.html().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "..."));
        }
        var text = oText.html();
        if (text.substring(text.length-3) != '...') {
            if (text.substring(text.length-4) == '<br>') {
                oText.html(text.replace(/<br>$/, "..."));
            }else {
                oText.html(text + '...')
            }                   
        }       
    }
}

对于上面的 js 代码,只要先设置 test 的宽高就行。js 代码中后面判断文本最后面3个字符是不是省略号(为了防止文本是通过多个 br 标签换行,而不会出现省略号),但是它限制了 html 的布局,大致布局如下:

<div class="test">
    <div>
       <!--  文本内容 -->
    </div>  
</div>

test 里面那个 div 标签可以换成 p、span、a、code 等等标签(楼主只试了这几个),但是 test 里面需要有只能有一个子元素,不然获取的 oText 不是文本内容。

如果小伙伴们有什么更好的办法来亮瞎楼主的那个什么眼,欢迎在评论中留言。

 

转载于:https://www.cnblogs.com/LY-leo/p/5777135.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值