text-overflow是一个常用的CSS属性,作用是让文本超出容器区域的部分以省略号显示。
要让它生效, 还需要配合设置其它几个css属性。示例CSS代码:
p {
white-space: nowrap;
width: 100%; /* IE6 needs any width */
overflow: hidden; /* "overflow" value must be different from "visible" */
-o-text-overflow: ellipsis; /* Opera 9-10 */
text-overflow: ellipsis; /* IE, WebKit (Safari, Chrome), Firefox 7, Opera 11 */
}
text-overflow的浏览器兼容情况见下表:
浏览器 | 版本 | 支持 | |
---|---|---|---|
Internet Explorer | 6.0+ | text-overflow | ellipsis | clip |
Firefox (Gecko) | 7.0+ | text-overflow | ellipsis | clip |
Opera (Presto) | 9.* - 10.* | -o-text-overflow | ellipsis | clip |
11.0+ | text-overflow | ellipsis | clip | |
Safari | Chrome | WebKit | 1.3 | 1.0 | 312.3 | text-overflow | ellipsis | clip |
可以看出,Firefox对text-overflow严重落后于其它浏览器,IE从数年前的6.0版本就支持了这个属性,而Firefox在IE6推出之后的漫长岁月里,Firefox经过了4次大版本号升级都没有提供支持,直到Firefox 7.
到目前为止,Firefox之外的浏览器都支持text-overflow css了,所以开发者只需要针对Firefox 3.x - 6.x做特别处理。
针对Firefox,做省略号效果,目前主要有3种方案,分别是:(1)css binding xml, (2)javascript截取,(3)省略号遮盖。
后续我准备对javascript截取法单独写一篇文章,介绍我对该问题的深入挖掘。