蓝戒的博客


css多行文本溢出显示省略号(…)解决方案

单行文本溢出的解决方法我们知道通常是使用text-overflow:ellipsis属性来实现单行文本的溢出显示省略号(…)。当然部分浏览器还需要加宽度width属性,保险起见凡是要溢出的显示省略号的我们都要设置好宽,高。
单行文本溢出省略号css代码方案如下:

width:500px;
height:40px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;

由于是做移动端页面遇到的多行文本溢出显示省略号(…)的问题,所以先介绍一下适用于移动端的我大css3的高级属性的实现方法:
在WebKit浏览器或移动端(绝大部分是WebKit内核的浏览器)的页面实现比较简单,可以直接使用WebKit的CSS扩展属性(WebKit是私有属性)-webkit-line-clamp ;
注意:这是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。
-webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性。
组合属性解决css3方案:

display: -webkit-box; /*必须结合的属性 ,将对象作为弹性伸缩盒子模型显示*/
-webkit-box-orient /*必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式*/

text-overflow: ellipsis; /*可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本*/

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

这个属性比较合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器。 比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现;

下面整理一个跨浏览器兼容的解决方案:

p { position:relative; line-height:1.4em; /* 3 times the line-height to show 3 lines*/height:4.2em; overflow:hidden; }

p::after { content:"..."; font-weight:bold; position:absolute; bottom:0; right:0; padding:0 20px 1px 45px; background:url(http://css88.b0.upaiyun.com/css88/2014/09/ellipsis_bg.png) repeat-y; }

话说这样就可以了吗,no,还有可恶的ie,注意:IE6-7不显示content内容,所以要兼容IE6-7可以是在内容中加入一个标签,比如用...去模拟;
要支持IE8,需要将::after替换成:after;

另外整理js解决方案,用js也可以根据上面的思路去模拟,推荐几个做类似工作的小插件:
1.Clamp.js
下载及文档地址:https://github.com/josephschmitt/Clamp.js
使用也非常简单:

var module = document.getElementById("clamp-this-module");
$clamp(module, {clamp: 3});

2.jQuery插件-jQuery.dotdotdot

$(document).ready(function() {
$("#wrapper").dotdotdot({
// configuration goes here
});
});

jQuery限制字符字数的方法:

<script>
$(function() {
$(".task_con_l p").each(function() {
var maxwidth = 150;
if ($(this).text().length > maxwidth) {
$(this).text($(this).text().substring(0, maxwidth));
$(this).html($(this).html() + '......');
}
});
});
</script>

本文固定链接: http://www.webzsky.com/?p=703 | 蓝戒的博客

cywcd
该日志由 cywcd 于2015年08月26日发表在 css 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: css多行文本溢出显示省略号(…)解决方案 | 蓝戒的博客
关键字: ,

css多行文本溢出显示省略号(…)解决方案:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter
来自的朋友,欢迎您 点击这里 订阅我的博客 o(∩_∩)o~~~
×