码迷,mamicode.com
首页 > Web开发 > 详细

一些常用的html css整理--文本长度截取

时间:2014-12-26 12:34:32      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

div+css设置列表div超出部分显示...(单行文本)

width:200px; //指定宽度:
overflow:hidden; //将超出内容隐藏
text-overflow:ellipsis; //文本溢出时显示省略标记。
white-space:nowrap; //强制内容不换行。强制在同一行内显示所有文本,直到文本结束或者遭遇 br 元素

现在的浏览器都支持text-overflow:ellipsis属性,用来实现单行文本的溢出显示省略号,但是这个属性并不支持多行文本。

多行文本处理,来源于http://c7sky.com/text-overflow-ellipsis-on-multiline-text.html

一、 -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;
}

这个我测试过的配合height的设置chrome正常,firefox没有省略号。

二、 -o-ellipsis-lastline 不推荐使用,现在opera使用chrome相同的内核

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

三、 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)(\.\.\.)?$/, "..."));
    };
});

 

一些常用的html css整理--文本长度截取

标签:

原文地址:http://www.cnblogs.com/fenglie/p/4186243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!