美文网首页IT杂谈
全部兼容的文本省略号ellipsis

全部兼容的文本省略号ellipsis

作者: ForsonLim | 来源:发表于2018-05-15 09:44 被阅读14次

    抛弃js实现单行多行的文本省略号

    前言
    在做项目的过程中经常会碰到一些文本的不固定性,需要将溢出的文本隐藏。
    这时候就要出现省略号提示文本溢出,还有更多内容,如果直接砍掉就很容易
    让人误会是没有有文字,或是什么原因造成文字显示不全。

    单行的可以直接用ellipsis来处理,但是旧版本的火狐会出现直接砍断不支持的情况(新版本已经支持)。

    新版火狐下测试

    单行文本溢出省略

    单行溢出的主要代码:

    white-space: nowrap;
    overflow: hidden;
    text-overflow:ellipsis;
    

    代码解释:因为是单行的溢出省略,所以到一行的尾部的时候不能换行,换行就不是隐藏了。
    之后再把溢出的部分隐藏起来,最后再用省略号代替。

    多行文本溢出省略

    多行溢出也可以用纯CSS来写,不过要用到一些新的元素,这个自然会导致兼容性上的问题。

    先看下面代码:

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    

    适用范围:

    因使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;

    本着能使用CSS就不用JS的原则,这边自然不会就这样放弃其它不兼容的浏览器,也不会用js来代替。

    先看代码:
    html

    <div class="multiline2">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio ad consequatur odit
        tempora alias corporis illo quae omnis porro ut maxime iste in doloribus ducimus cumque
        quibusdam veritatis enim accusantium.
        <span class="mask"></span>
        <span class="dot">...</span>
    </div>
    

    css

    .multiline2{
        position: relative;
        margin: 10px;
        width:300px;
        padding: 0 10px;
        max-height: 60px;
        line-height: 20px;
        border: 2px solid #026873;
        word-break: break-all;
        display: inline-block;
        overflow: hidden;
    }
    .multiline2 .mask{
        position: relative;
        z-index: 10;/*借用绝对定位将遮盖层提高*/
        float: right;
        height: 60px;
        width: 20px;
        background-color: #fff;
    }
    .multiline2 .dot{
        position: absolute;
        right: 10px;
        bottom: 0;
        width: 20px;
        display: inline-block;
        vertical-align: bottom;
        background-color: #fff;
    }
    

    效果图

    多行溢出

    原理解释

    这个主要是利用一个模块将省略号遮盖住,然后通过文字挤压推移此模块,等溢出的时候,该模块移开被遮住的省略号,这样就形成了多行省略的效果。

    虽然多了两个标签,但是省去了js的使用。

    查看例子
    大家可以自己运行调试其原理。

    相关文章

      网友评论

        本文标题:全部兼容的文本省略号ellipsis

        本文链接:https://www.haomeiwen.com/subject/yfcedftx.html