多行文本溢出显示省略号(...)的方法

admin9年前开发素材1731

现在的浏览器都支持text-overflow:ellipsis属性,用来实现单行文本的溢出显示省略号,但是这个属性并不支持多行文本。那么有没有方法在多行文本上实现同样的效果呢?

-webkit-line-clamp

Webkit支持一个名为-webkit-line-clamp的属性,他其实是一个WebKit-Specific Unsupported Property,也就是说这个属性并不是标准的一部分,可能是Webkit内部使用的,或者被弃用的属性。但是既然被人发现了,而且能用,为什么不试试呢~o(∩_∩)o

p {
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;}

Demo: http://jsfiddle.net/Cople/maB8f/

-o-ellipsis-lastline

从 Opera 10.60 开始,text-overflow属性有了一个名为-o-ellipsis-lastline的值。应用后的效果就像名字一样,在文本的最后一行加上省略号。这个方法比楼上的方法简单多了,可惜也不在标准之内//(ㄒoㄒ)//

p {
    overflow: hidden;
    white-space: normal;
    height: 3em;
    text-overflow: -o-ellipsis-lastline;}

Demo: http://jsfiddle.net/Cople/ash5v/

jQuery

除了各个浏览器私有的属性,有没有跨浏览器的解决方法呢?当然是通过js实现啦!(通过从后向前逐个删除末尾字符,直至元素的高度小于父元素高度)

$(".figcaption").each(function(i){
    var divH = $(this).height();
    var $p = $("p", $(this)).eq(0);
    while ($p.outerHeight() > divH) {
        $p.text($p.text().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "..."));
    };});

Demo: http://jsfiddle.net/Cople/DrML4/5/


分享到:

相关文章

iPhone/iPad/Android UI尺寸规范

iPhone/iPad/Android UI尺寸规范

iPhone界面尺寸设备分辨率PPI状态栏高度导航栏高度标签栏高度iPhone6 plus设计版1242×2208 px401PPI60px132px146pxiPhone6 plus放大版1125×...

ThinkPHP Http工具类(用于远程采集 远程下载)

<?php // +---------------------------------------------------------------------- // |...

php生成二维码的几种方式整理及使用实例

本文整理了一些php生成二维码的方式:1.google开放api;2.php类库PHP QR Code;3.libqrencode;4.QRcode Perl CGI & PHP script...

HTML5离线存储之Application Cache

HTML5离线存储之Application Cache

关于html5的离线存储,大致可分为:localStorage, sessionStorageindexedDBweb sqlapplication cache可以在chrome的debug...

SecureCRT优化调整、永久设置、保护眼睛和配色方案

SecureCRT优化调整、永久设置、保护眼睛和配色方案

SecureCRT优化调整、永久设置、保护眼睛和配色方案下载附件:securecrt-cn.rar    登录SecureCRT,对模板机标签进行会话选项和全局...

Cygwin国内比较快的镜像

 windows上装一个cygwin,只占很小的空间,windows就可以当unix用了。今天找到两个不错的国内镜像。  1)上海交大的FTP:ftp://ftp.sjtu.edu...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。