当前位置:首页 > 开发素材 > 正文内容

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

admin9年前 (2016-08-02)开发素材1751

现在的浏览器都支持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/


分享到:

扫描二维码推送至手机访问。

版权声明:本文由云河空间发布,如需转载请注明出处。

本文链接:https://yuyunhe.cn/index.php/post/173.html

分享给朋友:

“多行文本溢出显示省略号(...)的方法” 的相关文章

H-ui css 命名规范

 1. 内容优先,表现为辅   2. css命名中英文对照   current 当前     hover 悬停    ...

ThinkPHP二级联动开发demo下载

ThinkPHP二级联动开发demo下载

ThinkPHP二级联动.zip...

10个顶级的CSS UI开源框架

10个顶级的CSS UI开源框架

随着CSS3和HTML5的流行,我们的WEB页面不仅需要更人性化的设计理念,而且需要更酷的页面特效和用户体验。作为开发者,我们需要了解一些宝贵的CSS UI开源框架资源,它们可以帮助我们更快更好地实现一些现代化的界面,包括一些移动设备的网页界面风格设计。本文分享了10个顶级的CSS UI开源框架,有...

Eclipse的Aptana studio插件安装

Eclipse安装Aptana插件【在线安装】1. 在线安装:Help->Install New Software...->Add...->Name: "Aptana", Location: http:...

CSS3移入图片放大效果

CSS3移入图片放大效果引言我们有时看到一些网站有的照片,当我们将鼠标移入的时候,会有个放大的动画效果,今天我就来讲讲这个效果是如何实现的。demo最终实现效果:点击进入涉及知识点transform : scale()transition如何实现1Ps : demo 以 Webkit 为例,其它浏览...

发表评论

访客

看不清,换一张

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