日期:2014-05-16  浏览次数:20399 次

网页设计中,如果文本过长,我想只显示一部分文本,其余的用星号代替
jsp里面有个table是一个显示列表,有好几行,好几列
数据都是数据库里面查出来的,因为查出来的数据长度有长有短,所以我在想做一个固定的长度,太长的数据就只显示一部分然后后面是...的显示  段数据就不做处理了,求一个插件

例如:    |名字|性别|    爱好    |   
         |张三|男  |    篮球    |
         |李四|男  |足球,篮球...|
------解决方案--------------------
要插件立即就可以写一个,几行代码搞定
$.fn.substr = function(l,c){
    $(this).each(function(i,item){
        var val=$(item).html();
        if(!val) return;
        if(val.length>l) {
            val = val.substring(0,l);
            val += c 
------解决方案--------------------
 "..."
            $(item).html(val);
        }
    });
}

使用时
$('td').substr(5);
就会把所有td里面超过5个字符的字符串后面用...代替了,但要确保选中的标签内容只有字符串,若有html符号(<>)的话,很明显将出错
------解决方案--------------------

用CSS截断字符串

方法一:

<div style="width:300px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"> 任意长度的字符串 </div>

说明:优点是内容可以为任何HTML元素,包括超链接和图片等,在IE6中还会在结尾自动显示省略号。缺点是必须指定宽度数值,并且宽度不能是百分数,否则在IE中会被认为是字符总长的百分比。

方法二:

<input type=”text” style=”width:100%; cursor:default; border-width:0; border-style:none; background-color:transparent;” value=”任意长度的字符串” readonly/>

说明:优点是宽度可以设为百分数。但缺点是内容只能为纯文本,不能有超链接等内容。

CSS 截断字符串2008-01-08 09:58CSS是实现文字自动截断,代码如下:

div.test{

width:200px;

height:14px;

overflow:hidden;

white-space:nowrap;

text-overflow:ellipsis;

text-overflow: ellipsis;/* IE/Safari */

-ms-text-overflow: ellipsis;

-o-text-overflow: ellipsis;/* Opera */

-moz-binding: url("ellipsis.xml#ellipsis");/*FireFox*/

}

关键是text-overflow,其语法如下:

text-overflow:clip 
------解决方案--------------------
 ellipsis

clip:不显示省略标记(...),而是简单的裁切

ellipsis:当对象向内文本溢出时显示省略标记(...)

要注意的是:这个属性是IE专用的!不过,却非只有IE可用。该标签虽然没有被乖哦公开支持采纳,但却被很多浏览器的私有属性所包含。text-overflow单独使用是不起作用的,必须有white-space:nowrap;overflow:hidden;这两句的配合方可。前一句的作用是强制在同一行内显示所有文本,直到文本结束或者遭遇br对象。

不难看出,用text-overflow的最佳场所不是文章的行文,而是用以单行显示的标题或摘要的列表。

 

语法:

white-space : normal 
------解决方案--------------------
 pre 
------解决方案--------------------
 nowrap

取值:

normal  :  默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行

pre  :  换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-compliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象

nowrap  :  强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性