单行文本省略显示
CSS3有个 text-overflow
属性可以用来实现单行文本溢出的省略显示:
上面的代码在 IE, Chrome, Safari, Opera浏览器中可以正常使用,但是较低版本的 Firefox 不支持 text-overflow
,新版本的已经支持了。
要兼容较低版本的 Firefox 需要用到 Firefox 的私有属性 -moz-binding
去调用一个 XML 文件ellipsis.xml (右击另存为)。
调用方式如下:-moz-binding:url('ellipsis.xml#ellipsis');
,路径只支持相对路径,且该文件只能放在 css 文件同级或下级目录中。
以下的代码可以完美兼容各主流浏览器:
多行文本省略显示
Webkit 内核浏览器解决方法
这个方式适用于 Webkit 内核浏览器以及移动端(绝大部分移动端浏览器采用 Webkit 内核),主流浏览器中 IE 和 Firefox 不支持。
实现方法如下:
display: -webkit-box;
将元素盒子设置为弹性伸缩盒子-webkit-line-orient: vertical;
规定子元素的排列方向为垂直-webkit-line-clamp: 2;
规定显示的行数
跨浏览器解决方案(CSS)
下面是一个老外的解决方法
需要注意的是,覆盖省略号所用的伪元素背景色应该跟父元素的颜色一致,这就使得父元素的背景必须为纯色。
本文参考:
http://hackingui.com/front-end/a-pure-css-solution-for-multiline-text-truncation/
http://www.zhangxinxu.com/wordpress/2009/09/%E5%85%B3%E4%BA%8E%E6%96%87%E5%AD%97%E5%86%85%E5%AE%B9%E6%BA%A2%E5%87%BA%E7%94%A8%E7%82%B9%E7%82%B9%E7%82%B9-%E7%9C%81%E7%95%A5%E5%8F%B7%E8%A1%A8%E7%A4%BA/