2014年3月:用CSS截断长字符串:一个关注浏览器支持的新答案
http://jsbin.com/leyukama/1/上的演示(我使用jsbin,因为它支持旧版本的IE)。
<style type="text/css">
span {
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis; /** IE6+, Firefox 7+, Opera 11+, Chrome, Safari **/
-o-text-overflow: ellipsis; /** Opera 9 & 10 **/
width: 370px; /* note that this width will have to be smaller to see the effect */
}
</style>
<span>Some very long text that should be cut off at some point coz it's a bit too long and the text overflow ellipsis feature is used</span>
-ms-text-overflow CSS属性不是必须的:它是text-overflow CSS属性的同义词,但是IE从6到11的版本已经支持text-overflow CSS属性。
在Windows操作系统上成功测试(在Browserstack.com上),适用于web浏览器:
IE6到IE11
Opera 10.6, Opera 11.1, Opera 15.0, Opera 20.0
Chrome 14, Chrome 20, Chrome 25
Safari 4.0, Safari 5.0, Safari 5.1
Firefox 7.0, Firefox 15
Firefox:正如Simon Lieschke(在另一个回答中)指出的,Firefox从Firefox 7(2011年9月27日发布)开始只支持文本溢出CSS属性。
我在Firefox 3.0和Firefox 6.0上反复检查了这个行为(不支持文本溢出)。
在Mac OS网络浏览器上还需要进一步测试。
注意:当一个省略号被应用时,你可能想要在鼠标悬停上显示一个工具提示,这可以通过javascript来完成,看这个问题:HTML文本溢出省略号检测和HTML -我如何才能在省略号被激活时显示工具提示
资源:
https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow#Browser_compatibility
http://css-tricks.com/snippets/css/truncate-string-with-ellipsis/
https://stackoverflow.com/a/1101702/759452
http://www.browsersupport.net/CSS/text-overflow
http://caniuse.com/text-overflow
http://msdn.microsoft.com/en-us/library/ie/ms531174 (v = vs.85) . aspx
http://hacks.mozilla.org/2011/09/whats-new-for-web-developers-in-firefox-7/