js与css实现文本溢出自动添加省略号_Js与css实现文本溢出自动添加省略号方法总结

更新时间:2018-10-18    来源:浏览器    手机版     字体:

【www.bbyears.com--浏览器】

1.常规css方法——可以实现IE,Safari,chrome,opera浏览器下文字溢出省略号表示
这是一段测试文字,主要是用来测试文字溢出后是否会用省略号显示。

 代码如下 .zxx_text_overflow_1{width:27em; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; overflow:hidden;}

2.使用ellipsis.xml文件使Firefox支持文字溢出后点点点省略号表示
这段代码调用了跨文件夹路径的ellipsis.xml文件,看Firefox浏览器下是够文字溢出省略号表示。
ps: 在Firefox下上面div内容显示空白,此div内容是:“这段代码添加了跨文件夹路径的ellipsis.xml文件,看Firefox浏览器下是够文字溢出省略号表示”。

 代码如下 .zxx_text_overflow_2{width:27em; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; -moz-binding:url("../xml/ellipsis.xml#ellipsis"); overflow:hidden;}

这段代码调用了同文件夹路径的ellipsis.xml文件,看Firefox浏览器下是够文字溢出省略号表示。
ps: 在Firefox下上面div文字溢出省略号显示,此div内容是“这段代码调用了同文件夹路径的ellipsis.xml文件,看Firefox浏览器下是够文字溢出省略号表示”。至此,几乎所有主流浏览器都实现文字溢出省略号表示。

 代码如下 .zxx_text_overflow_3{width:27em; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; -moz-binding:url("ellipsis.xml#ellipsis"); overflow:hidden;}

这里有个小结论:这个使Firefox浏览器下文字溢出省略号表示的ellipsis.xml文件要在页面的同一目录下,或是下一级目录下(我已测试),要是向上跨文件夹访问或绝对路径访问则失效。原因不详!


js实现代码

 代码如下

Js文本溢出自动添加省略号ellipsis-兼容版

    <script type="text/javascript">
    function formatEllipsis(){
           var arr=[];
           var aDiv=document.getElementsByTagName("*");
           for(var i=0;i                    if(aDiv[i].className=="ellipsis"){
                           arr.push(aDiv[i]);
                   }
           }
           for(var i=0;i                    new ellipsis(arr[i]);
           }
    }
    function ellipsis(obj){
           this.obj=obj;
           this._style=[];
           this._width=getStyle(this.obj,"width");
           this._height=getStyle(this.obj,"height");
           this._fontSize=getStyle(this.obj,"fontSize");
           this._lineHeight=getStyle(this.obj,"lineHeight");
           var limit=this.format();
           //alert(limit);
           var _html=obj.innerHTML;
           obj.innerHTML=_html.substring(0,limit)+"...";
    }
    ellipsis.prototype.format=function(){
           var _html=this.obj.innerHTML;
           var _len=_html.length;
           var _lines=Math.floor(this._width/this._lineHeight);
           var _cols=Math.floor(this._width/this._fontSize);
           return _lines*_cols-3;
    }
    function getStyle(e,p){
           var s= e.currentStyle ? e.currentStyle[p] : document.defaultView.getComputedStyle(e,null)[p];
           return parseInt(s);
    }
    window.onload=function(){
           formatEllipsis();
    }
    </script>
   
   
    你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好
    nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
   
   

css文本溢出自动添加省略号

1.兼容 IE6 / IE7 /FireFox
2.文本对象:table里的文本,不能换行
3.如果采用js截取,支持resize,并保证页面执行效率
4.确保firefox下省略号的出现

 代码如下





css文字截取



用css来实现自动截取文字,不需要后台程序和JS的使用
好处是:有利于内容完整性,有利于SEO,无需后台程序处理,可以在前台随时调节要截取的长度。
不好的地方:不能自动判断截取长度,当字符很短的时候在Firefox中也会生成后面的省略符号。
另外在设置截取宽度的时候,要注意,尽量让文字截取完整

本文来源:http://www.bbyears.com/bangongshuma/45153.html

热门标签

更多>>

本类排行