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

语法:

text-overflow : clip | ellipsis

  参数:
  clip :  不显示省略标记(...),而是简单的裁切
  (clip这个参数是不常用的!)
  ellipsis :  当对象内文本溢出时显示省略标记(...)

说明:
  设置或检索是否使用一个省略标记(...)标示对象内文本的溢出。
  请您注意,text-overflow:ellipsis属性在FF中是没有效果的。

示例:
  div { text-overflow : clip; }

  text-overflow是一个比较特殊的样式,我们可以用它代替我们通常所用的标题截取函数,而且这样做对搜索引擎更加友好,如:标题文件有50个汉字,而我们的列表可能只有300px的宽度。如果用标题截取函数,则标题不是完整的,如果我们用CSS样式text-overflow:ellipsis,输出的标题是完整的,只是受容器大小的局限不显示出来罢了。

 代码如下 复制代码

html代码:
<div>
<p><span>CSS Web DesignDiv+css教程 - www.111cn.net</span><p>
</div>

css代码:

 代码如下 复制代码

div{
width:200px;/*容器的基本定义*/
height:200px;
background-color:#eee;
}

/* IE下的样式 */
p span{
display: block;
width:200px;/*对宽度的定义,根据情况修改*/
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}

/* FF 下的样式 */
p{clear:both;}
p span{
float:left;
max-width:175px;   /*IE不能解释该属性,而FF可以*/
}
p:after{
content:"...";
}

注意:这里还要补充的一点是关于p span 的宽度用了"max-width"这个属性,IE不能解释该属性,而FF可以,这样就避开了IE对SPAN宽度的重新应用。

如果你不想使用css可使用jquery实现

-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/

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

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

当内容超出最大的长度的时候,使用CSS使文本显示省略号

.description{  height:17px;  overflow:hidden;  text-overflow:ellipsis;  -webkit-text-overflow:ellipsis;  -o-text-overflow:ellipsis;  white-space:nowrap; }

HTML超出文本显示省略号...通过text-overflow实现

HTML超出文本显示省略号在一些新闻列表中还是比较常见的一种做法,其实很简单通过text-overflow便可实现,有需要的朋友可以参考下本文   需要对div或者span同时应用Css: 复制代码 代码如下: text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 即可实现所想要得到的溢出文本显示省略号效果. 当然了你的页面元素要设置固定的宽度,超出了宽度才会显示.         注:更多精彩教程请关注三联网页设计教程 栏目,

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

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

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

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

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

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

CSS超出文本用省略号显示 兼容firefox IE6 IE7

CSS设置文本溢出不显示或显示省略号,只显示一定长度的文本,ie9下只需设置  代码如下 复制代码 div{white-space:nowrap;text-overflow: none;} 或  代码如下 复制代码 div{white-space:nowrap;text-overflow: ellIPsis;} 即可,在ie6,ie7需增加宽度设置才能生效  代码如下 复制代码 div{white-space:nowrap;text-overflow: ellipsis;*width:100px

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

个人使用的方法 .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: verti

CSS截取字符串显示省略号

  有时候,为了避免页面中某个Div的内容过多,而导致页面变形,我们通常在CSs中定义overflow:hidden,这样会不显示文字,不过看上去用户体验不太好,为了获得最佳的用户体验,我们在隐藏文字的同时,可以在文字后边显示省略号,CSS中有现成的方法可以用,比如下面对CSS的定义: 1/*CSS代码如下:*/ 2show{ 3overflow:hidden; 4white-space:nowrap; 5text-overflow:ellipsis; 6/*为你显示文字的div添加宽度定义,当

CSS控制文字超出部分显示省略号方法

测试浏览器: IE6/7/8/9.opera12.02.firefox15.0.1.chrome  代码如下 复制代码 <p style="width:200px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">省略我吧 省略我吧! 省略我吧!省略我! </p> 如果我们要给p标签定义text-overflow:ellipsis就可以这么写:  代码如下 复制代码 p {