以前使用过这个例子,如今总结说明一下: css
先给贴代码: html
<p style="width: 300px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;"> 省略我吧! 省略我吧! 省略我吧! 省略我吧! 省略我吧! 省略我吧! 省略我吧! 省略我吧! 省略我吧! 省略我吧! 省略我吧! 省略我吧! </p>
测试浏览器: IE6/7/8/9、opera12.02、firefox15.0.1、chrome21.0.1180.89 m chrome
完整例子:runjs.cn 浏览器
如今解释一下为何要这样作: 网络
一、text-overflow: ellipsis; 布局
这里的重点样式是 text-overflow: ellipsis; 学习
不过话说text-ellipsis是一个特殊的样式,有关解释是这样的:text-overflow属性仅是注解,当文本溢出时是否显示省略标记。并不具有其它的样式属性定义。要实现溢出时产生省略号的效果还须定义:强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏(overflow:hidden),只有这样才能实现溢出文本显示省略号的效果。 测试
简单理解就是我要把文本限制在一行(white-space: nowrap;),确定这一行是有限制的(width),而且你的溢出的部分要隐藏起来(overflow: hidden;),而后出现省略号( text-overflow: ellipsis)。 spa
我在网上看到有不少人说opera不支持text-overflow,可能由于我用的是最新版本的,已经支持这个属性了,因此没办法测试,不过网上给支持低版本的opera一个办法,就是-o-text-overflow:ellipsis;至于火狐,也有不少人说不支持,版本问题没法考证,你们有试过的能够出来指证一下,这里有个《在火狐里 怎样用CSS限制字数并以点的形式显示》,能够参考一下。 firefox
二、white-space
顺便解释一下white-space的用法
white-space属性声明创建布局过程当中如何处理元素中空白符。(废话一句,这里的空白符应该指咱们用键盘敲入的空格或回车,由于用 或<br>不管white-space设置什么都会有空格或回车。)
下面是wschool上white-space可能的值:
normal 默认。空白会被浏览器忽略。
pre 空白会被浏览器保留。其行为方式相似 HTML 中的 <pre> 标签。
nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
pre-wrap 保留空白符序列,可是正常地进行换行。
pre-line 合并空白符序列,可是保留换行符。
inherit 规定应该从父元素继承 white-space 属性的值。
大部份内容来自网络,仅供本身学习理解之用,牛人笑看之。。