• CSS实现单行、多行文本溢出显示省略号


    1.单行超出显示...

    <p>文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</p>
    
    p{
         200px;
        overflow: hidden;
        text-overflow:ellipsis;
        white-space: nowrap;
    }

    效果:

    2.多行超出显示...

    <p>文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字</p>
    
    
    p {
         100px;   /*限制宽度*/
        position: relative;
        line-height: 20px;
        max-height: 40px;
        overflow: hidden;
    }
    
    p::after {
        content: "...";
        position: absolute;
        bottom: 0;
        right: 0;
        padding-left: 40px;
        background: -webkit-linear-gradient(left, transparent, #fff 55%);   
        background: -o-linear-gradient(right, transparent, #fff 55%);
        background: -moz-linear-gradient(right, transparent, #fff 55%);
        background: linear-gradient(to right, transparent, #fff 55%);
    }

    效果:

    在ie9下效果:

    注:

      1. 如果文字未超出行的情况下也会出现省略号,需要配合js进行优化

      2. 由于ie6-7不显示content内容,所以要添加标签兼容ie6-7(如:<span>…<span/>);兼容ie8需要将::after替换成:after。

     3.文字未超出,样式优化(有瑕疵)

    <p id="textP">文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字.</p>
    
    p {
         100px;   /*限制宽度*/
        position: relative;
        line-height: 20px;
        max-height: 40px;
        overflow: hidden;
    }
    
    p.textp::after {
        content: "...";
        position: absolute;
        bottom: 0;
        right: 0;
        padding-left: 40px;
        background: -webkit-linear-gradient(left, transparent, #fff 55%);   
        background: -o-linear-gradient(right, transparent, #fff 55%);
        background: -moz-linear-gradient(right, transparent, #fff 55%);
        background: linear-gradient(to right, transparent, #fff 55%);
    }

    js代码

    function domeP(){
        var p=document.getElementById('textP');
        var w=16.6;                //每个字符的宽度=元素宽度/一行显示的字数
        var len=(p.innerHTML.length)*w;      //总长度=字数*每个字的宽度
        var textW=(p.offsetWidth)*2;      //两行的总宽度(如果只显示两行)
        if (len>textW) {
            p.className='textp';
        }else{
            p.className='';
        }
    }
    window.onload=function(){
        domeP();
    }
    

    注解:每个字符的宽度需要动态获取,显示的行数也需要动态获取,这里直接写的固定值

  • 相关阅读:
    自学Linux Shell14.3-创建临时文件
    自学Linux Shell14.2-在脚本中使用其他文件描述符
    自学Linux Shell14.1-理解输入输出
    自学Linux Shell13.3-获得用户输入(read命令)
    自学Linux Shell13.2-选项处理(主要getopt、getopts命令)
    自学Linux Shell13.1-命令行参数
    自学Linux Shell12.8-循环实例
    自学Linux Shell12.7-控制循环break、continue命令
    自学Linux Shell12.6-嵌套循环for命令
    自学Linux Shell12.5-while、until命令
  • 原文地址:https://www.cnblogs.com/xiaoxinzi/p/8548889.html
Copyright © 2020-2023  润新知