text-overflow是一个常用的CSS属性,作用是让文本超出容器区域的部分以省略号显示。
要让它生效, 还需要配合设置其它几个css属性。示例CSS代码:
1 | p { |
2 | white-space : nowrap ; |
3 | width : 100% ; /* IE6 needs any width */ |
4 | overflow : hidden ; /* "overflow" value must be different from "visible" */ |
5 | -o-text- overflow : ellipsis; /* Opera 9-10 */ |
6 | text- overflow : ellipsis; /* IE, WebKit (Safari, Chrome), Firefox 7, Opera 11 */ |
7 | } |
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截取法单独写一篇文章,介绍我对该问题的深入挖掘。