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

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实现代码

 代码如下 复制代码

<title>Js文本溢出自动添加省略号ellipsis-兼容版</title>
<style type="text/css">
    * {margin:0;padding:0;font-size:12px;}
    #div{width:200px;height:200px;}
    #div2{width:300px;height:200px;}
    .ellipsis {border:1px solid red;font-size:12px;line-height:25px;word-wrap:break-word;}
    </style>
    <script type="text/javascript">
    function formatEllipsis(){
           var arr=[];
           var aDiv=document.getElementsByTagName("*");
           for(var i=0;i<aDiv.length;i++){
                   if(aDiv[i].className=="ellipsis"){
                           arr.push(aDiv[i]);
                   }
           }
           for(var i=0;i<arr.length;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>
    </head>
    <body>
    <div id="div" class="ellipsis">你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好</div>
    <div id="div2" class="ellipsis">nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn</div>
    </body>
    </html>

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

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

 代码如下 复制代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>css文字截取</title>
<style type="text/css">
body{font-size:13px;color:#8c966b;}
div{clear:both;width:340px;border:1px solid #333;margin:3px;padding:3px;}
div a{color:#8c966b;text-decoration:none;}
div a:hover{text-decoration:underline;}
div a{display:block;width:310px;white-space:nowrap;overflow:hidden;float:left;
-o-text-overflow: ellipsis; /* for Opera */
text-overflow:ellipsis; /* for IE */
}
div:after{content:"...";padding-left:3px;font-size:12px;}/* for Firefox */
</style>
</head>
<body>
<div><a href="">用css来实现自动截取文字,不需要后台程序和JS的使用</a></div>
<div><a href="">好处是:有利于内容完整性,有利于SEO,无需后台程序处理,可以在前台随时调节要截取的长度。</a></div>
<div><a href="">不好的地方:不能自动判断截取长度,当字符很短的时候在Firefox中也会生成后面的省略符号。</a></div>
<div><a href="">另外在设置截取宽度的时候,要注意,尽量让文字截取完整</a></div>
</body>
</html>

时间: 2024-11-20 22:26:55

Js与css实现文本溢出自动添加省略号方法总结的相关文章

CSS/Js文本溢出自动添加省略号ellipsis

  CSS文本溢出省略号 text-overflow:ellipsis ext-overflow是一个比较特殊的属性,W3C早前的文档中(目前的文档中没有包含text-overflow属性,FML!)对其的定义是: Name: text-overflow-mode Value: clip | ellipsis | ellipsis-word clip : 不显示省略标记(-),而是简单的裁切 ellipsis : 当对象内文本溢出时显示省略标记(-),省略标记插入的位置是最后一个字符. elli

js固定DIV高度,超出部分自动添加滚动条的简单方法

这篇文章介绍了js固定DIV高度,超出部分自动添加滚动条的简单方法,有需要的朋友可以参考一下   复制代码 代码如下: function setheight()     {     var div=document.getElementById("event_basicInfo");     //div.style.width="40%";     div.style.height=400;     div.style.overflow="auto&quo

js和css写一个可以自动隐藏的悬浮框_javascript技巧

今天写一个小实例,用js和css写一个可以自动隐藏的悬浮框.css肯定是用来控制样式的,js用来控制器显示与隐藏的.显示与隐藏通常有两种方法实现:1,用js控制其显示属性:2,用js控制其大小. 今天要说的就是通过控制其大小来实现元素的显隐,原理:为其注册鼠标移入.移出的事件,当鼠标移出对象范围,将其宽度设为1,当鼠标再次移入该对象,将其宽度还原.很简单,我们一起看看吧! 隐藏状态:   左边那一条窄线就是隐藏以后的悬浮框. 显示状态:   当鼠标滑到左边的悬浮框上,悬浮框就又显示出来了. CS

js根据鼠标移动速度背景图片自动旋转的方法_javascript技巧

本文实例讲述了js根据鼠标移动速度背景图片自动旋转的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xh

JS 或css 识别 IE版本的几种方法

JS 或css教程 识别 IE版本的几种方法 今天收藏了这几种关于识别ie版本的几种代码,有需要的朋友参考一下. var isIE=!!window.ActiveXObject; var isIE6=isIE&&!window.XMLHttpRequest; var isIE8=isIE&&!!document.documentMode; var isIE7=isIE&&!isIE6&&!isIE8; if (isIE){     if (i

CSS控制文字超出部分显示省略号方法

测试浏览器: IE6/7/8/9.opera12.02.firefox15.0.1.chrome  代码如下 复制代码 <p style="width:200px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">省略我吧 省略我吧! 省略我吧!省略我! </p> 如果我们要给p标签定义text-overflow:ellipsis就可以这么写:  代码如下 复制代码 p {      

js固定DIV高度,超出部分自动添加滚动条

js实现方法  代码如下 复制代码 function setheight()     {     var div=document.getElementById("event_basicInfo");     //div.style.width="40%";     div.style.height=400;     div.style.overflow="auto";     } window.onload=setheight; css实现方法

js如何给复制网页文章自动添加版权信息

自己辛辛苦苦写的文章,轻易就被别人复制-粘贴去了,是不是很伤心呢?现在教大家一个方法,让别人复制自己的文章时,自动在文章的结尾添加自己的版权信息.请大家试试复制本篇文章,然后粘贴到记事本中,看看文章的最后是不是自动出现了"该文章转载自幻龙网络"的字样. 方法如下: 在网页最后添加:

js固定DIV高度,超出部分自动添加滚动条的简单方法_javascript技巧

复制代码 代码如下: function setheight()     {     var div=document.getElementById("event_basicInfo");     //div.style.width="40%";     div.style.height=400;     div.style.overflow="auto";     }     window.onload=setheight;