CSS3判断文本行数并进行截取处理

网站优化时发现右侧文章展示栏标题文字太多时占据行数太多,与缩略图不对称影响美观,就想着对标题文本进行处理。一开始是想着有两种方式解决,一是利用WordPress本身自带的wp_trim_words()函数进行文本截取,具体详细可阅读【WordPress 截取摘要内容和控制标题字数方法】,但想着此截取方式会把标题中的相关关键词给截取掉,故选择了第二种处理方式利用CSS3判断文本行数并进行截取处理。
CSS3判断文本行数并进行处理

利用CSS进行截取的好处:

不影响实际的html文本,仅是在前端展示时,对于文本行数过多的标题进行处理。

CSS3判断文本行数并进行截取

站长的需求是将超过3行的标题文字进行截取,并以 … 显示。好了,话不多说,直接上样式代码:

1
2
3
4
5
6
7
{
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

需要注意的是-webkit-line-clamp是webkit的私有属性,是一个不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。

-webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:

  1. display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
  2. -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。

这个属性目前仅支持webkit浏览器,比较合适WebKit浏览器或移动端(移动端绝大部分是WebKit内核的浏览器)。