日期:2014-05-17  浏览次数:20975 次

如何做到类似163邮件列表中标题长度自动截取
RT
当窗口大小为1024*168的时候,标题长度是
┌─————————————————————┐
│   标题标题标题标题标题标题标题标题标               │
└------------------------------------------┘
当窗口宽度变小的时候标题长度自动加上“...”
┌─———————————————┐
│   标题标题标题标题标题标题标...     │
└--------------------------------┘
标题的长度是根据表格的宽度来决定的。。

------解决方案--------------------
在标题容器加上如下样式试试style= "overflow:hidden;white-space:nowrap;text-overflow:ellipsis; " 最好将容器高度限死
------解决方案--------------------
不用想的这么复杂,用css就搞定:
<TABLE style= "table-layout:fixed; ">
<TR>
<TD width= "100 " style= "text-overflow:ellipsis;overflow:hidden "> sssssssssssssssssssssssssssssssssssssssssss </TD>
<TD> </TD>
</TR>
<TR>
<TD> </TD>
<TD> </TD>
</TR>
</TABLE>
------解决方案--------------------
参考:
http://community.csdn.net/Expert/topic/5654/5654869.xml?temp=.7690241
------解决方案--------------------
思路:
用Javascript定义窗口大小改变时候触发这个事件:
取得包含该标题地单元格此时宽度减去padding*2,然后除以每个字符的宽度(这对于一些字体来说是固定的),然后再减去1,存储为aaaa变量
把标题的内容改成实际标题左取aaaa个字符,然后加上“…”


如果再精细一点就要考虑中英文字符的差别(因为英文字符是中文字符的一半),这个函数很容易找,就是挨个挨个字符的ASCII值取出来看是什么范围就知道是中文还是英文了
------解决方案--------------------
大哥,还没解决吗?这问题太简单了,复制下边的代码试试就明白了!

不用Javascript,其实就是CSS:

<html>
<body>
<table width= "40% " border= "0 " cellspacing= "0 " cellpadding= "0 ">
<tr>
<td> <div style= "POSITION: absolute; WIDTH:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; "> CSS:字符自动截短并用省略号代替的 </div> </td>
</tr>
</table>
</body>
</html>