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

个人使用的方法

.ellipsis1 {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ellipsis2 {
    text-overflow: -o-ellipsis-lastline;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

 

 

以下转载相关介绍:

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

HTMLjQuery教程

本站文章除注明转载外,均为原创文章。转载请注明:文章转载自:小影志(http://c7sky.com/

时间: 2024-10-24 14:14:47

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

css实现多行文本溢出显示省略号(…)全攻略

大家应该都知道用text-overflow:ellipsis属性来实现单行文本的溢出显示省略号(-).当然部分浏览器还需要加宽度width属性.  代码如下 复制代码 overflow: hidden; text-overflow: ellipsis; white-space: nowrap; 但是这个属性并不支持多行文本溢出显示省略号,这里根据应用场景介绍几个方法来实现这样的效果. WebKit浏览器或移动端的页面 在WebKit浏览器或移动端(绝大部分是WebKit内核的浏览器)的页面实现比

Android设置TextView显示指定个数字符,超过部分显示...(省略号)的方法_Android

本文实例讲述了Android设置TextView显示指定个数字符,超过部分显示...(省略号)的方法.分享给大家供大家参考,具体如下: 一.问题: 今天在公司遇到一个需求:TextView设置最多显示8个字符,超过部分显示...(省略号) 二.解决方法: 网上找了很多资料,有人说分别设置TextView的android:signature="true",并且设置android:ellipsize="end";但是我试了,并没有成功,最后自己试出一种方式如下:供大家参

css 溢出文本显示省略号各种方法总结

语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 (clip这个参数是不常用的!) ellipsis : 当对象内文本溢出时显示省略标记(...) 说明: 设置或检索是否使用一个省略标记(...)标示对象内文本的溢出. 请您注意,text-overflow:ellipsis属性在FF中是没有效果的. 示例: div { text-overflow : clip; } text-overflow是一个比较特殊的样

css实现文字过长显示省略号的方法

 因为网页排版的需要,有些地方需要过长的问题加上省略号.比如:标题限制20个中文的宽度,超出的就用省略号代替.之前会使用程序截取的方法,不过使用css来截取更有利于SEO. 下面就介绍一下具体的使用方法: <div class="title">当对象内文本溢出时显示省略标记</div> 这是一个例子,其实我们只需要显示如下长度: css实现网页中文字过长截取... title class应该这样写: .title{ width:300px; white-spac

css 单行文本溢出显示省略号解决办法

样式代码,四个属性都是必须的,并且宽度必须设在当前容器上,父容器定宽无效:  代码如下 复制代码 .box {  width: 200px;  white-space: nowrap;  overflow: hidden;  text-overflow: ellipsis; } 测试 IE6.IE7.IE8.IE9.Chrome.Firefox 均支持. 测试实例  代码如下 复制代码 <!DOCTYPE HTML> <html> <head>  <meta ch

jQuery实现控制文字内容溢出用省略号(…)表示的方法_jquery

本文实例讲述了jQuery实现控制文字内容溢出用省略号(-)表示的方法.分享给大家供大家参考,具体如下: jQuery限制字符字数的方法 $(function(){ //限制字符个数 $(".text").each(function(){ var maxwidth=23; if($(this).text().length>maxwidth){ $(this).text($(this).text().substring(0,maxwidth)); $(this).html($(th

如何继续截取长文本显示省略号(多行)

记得第一篇博客写过单行文本溢出显示省略号,今天就来说说多行文本溢出怎么显示省略号吧 其实也是前些日子做移动端的页面接到这么个需求,本来以为这没法实现,同事跟我说-webkit-line-clamp属性可以,就去查了查,果然 Pc端基本不会有这种需求,因为这个方法兼容性太差,浏览器份额不是webkit占大头(特别是天朝),看前缀就知道只支持webkit内核,他属于webkit内部属性,和-webkit-text-size-adjust: none(这个Pc端已经不在支持,移动端还可以使用)类似,但

如何设置列表(li)超出部分显示省略号?

显示 我们常常希望列表中的内容,超过设置的长度的时候,不要撑开父元素,也不希望它直接换行:我们更愿意让其超过部分用省略号来代替.而在title标签中,置放的是完整的标题. 这样的方法新手们常常不知道该如何搞定.下面就是方法的演示.不过请注意此方法适用与IE与OP浏览器! 设置li超出部分显示省略号的方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml

javascript超过容器后显示省略号效果的方法(兼容一行或者多行)_javascript技巧

javascript超过容器后显示省略号效果 在实际的项目中,由于文字内容的长度不确定性和页面布局的固定性,难免会出现文字内容超过div(或其他标签,下同)区域的情况,此时比较好的做法就是当文字超过限定的div宽度后自动以省略号(-)显示,这样,按照习惯,人们都会知道这儿有文字被省略了.css中有个属性叫做text-overflow:ellipsis;比如使用css可以这样写: {width:27em; white-space:nowrap; text-overflow:ellipsis; -o