CSS单行、多行文本溢出显示省略号

  • 单行文本溢出显示省略号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
使用简单,实现方法自行百度
相关文章
相关标签/搜索