CSS3判断文本行数并进行截取处理
网站优化时发现右侧文章展示栏标题文字太多时占据行数太多,与缩略图不对称影响美观,就想着对标题文本进行处理。一开始是想着有两种方式解决,一是利用WordPress本身自带的wp_trim_words()函数进行文本截取,具体详细可阅读【WordPress 截取摘要内容和控制标题字数方法】,但想着此截取方式会把标题中的相关关键词给截取掉,故选择了第二种处理方式利用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属性。常见结合属性:
- display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
- -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
这个属性目前仅支持webkit浏览器,比较合适WebKit浏览器或移动端(移动端绝大部分是WebKit内核的浏览器)。