单行文本溢出显示省略号css
overflow:hidden; text-overflow:ellipsis; white-space:nowrap; (须要对容器设置单行高度)
多行文本溢出显示省略号jquery
webkit浏览器或移动端的页面web
在webkit浏览器或移动端(绝大部分是webkit内核的浏览器)能够直接使用webkit的css扩展属性(webkit是私有属性)-webkit-line-clamp; 注意:这是一个不规范的属性,它没有在CSS的规范草案中 -webkit-line-clamp用来限制在一个块元素显示的文本行数,为了实现效果,他要与一下webkit属性结合使用: display:-webkit-box;(必须结合的属性,将对象做为弹性伸缩盒子模型展现) -webkit-box-orient(必须结合的属性,设置或检索伸缩盒对象的子元素的排列方式)
完整版写法以下:浏览器
overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; (两行文字) -webkit-box-orient:vertical;
**跨浏览器兼容的方案** 比较靠谱简单的作法就是设置相对定位的容器高度,用包含省略号(...)的元素模拟实现
p{ position:relative; line-height:1.4em; /*设置容器高度为3倍行高就是显示3行*/ height:4.2em; overflow:hidden; } p::after{ content:'...'; font-weight:bold; position:absolute; bottom:0; right:0; padding:0 20px 1px 45px; background:#fff; }
注意:IE6-7不显示content内容,因此要兼容IE6-7能够是在内容中加入一个标签,好比<span>...</span>去模拟;要支持IE8,须要将::after替换为:after工具
JavaScript解决方案spa
使用js也能够根据上面的思路去模拟,实现也很简单,推荐两个作相似工做的成熟小工具: 一、clamp.js 二、jQuery插件 jquery.dotdotdot 使用简单,实现方法自行百度