单行和多行的文本省略,并用省略号代替

单行文本省略:

{  
  overflow:hidden;    //超出部分隐藏

  white-space:nowrap;    //强制不换行

  text-overflow:ellipsis    //省略号

};
image.gif

写在css里,很简单的三行代码,但是注意,必须为父元素设置宽度,当然也必须得是块元素了。

多行文本省略,若使用上面的方法,只会显示第一行的文本,后面的全部省略,与期望不符,比对多种方法后,推荐用JavaScript进行设置,具体代码如下:

<div id='text'>
    /* 多行文本内容 */
</div>
<script type="text/javascript">
    function textHide(num,con){    //定义函数
        var contain = document.getElementById(con);
        var txt = contain.innerHTML;
        if(txt.length>num){
            txt = txt.substring(0,num-1)+"...";
            contain.innerHTML = txt;
        }else{
            console.log("文本未超出,无需省略")
        }
    };
    textHide(100,'text');    //调用函数
</script>
image.gif

参数1(num)是允许最大文字数目,参数2(con)是元素节点的id名称

原理:

  1. 根据节点id,获取文本的全部内容
  2. 比较文本的长度(txt.length)和目标长度(num)之间的大小
  3. 若超出目标长度,截取目标长度的内容(subtring方法),并在后面拼接“...”字符串,替换当前文本内容

当然,还是要块元素,并设置宽和高。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容