项目中常常有这种需要我们对溢出文本进行"..."显示的操作,单行多行的情况都有(具体几行得看设计师心情了)实现的方式有很多种,具体使用哪种视情况而定。
先来讲一下CSS实现的办法。
CSS:单行
p{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap
}
这种方式文本不会换行,适用于裁剪标题。但在需要显示两行或以上时,就下需要其他办法。
CSS伪类 :after
p{position:relative;}
p:after{
display: inline;
content: "...";
position:absolute;
right:0;
bottom:0;
}
使用伪类来显示“...”省略符号,用position定位到右下角。
但这种方式,你会发现一个问题,如果p标签设置了宽高,文字数量无法充满容器,文字与“...”之间有空白。
JavaScript字符截取
//限制文章摘要字数
function limitExcerpt(num){
var posts = document.getElementById("post_box"); //获取容器id
var postsText = posts.getElementsByClassName("post-text"); //获取文章摘要
for (var i = 0; i < postsText.length; i++) {
//获取列表每篇文章字数
var txt = postsText[i].innerHTML;
//判断文章摘要字数
if (txt.length>num) {
txt = txt.substring(0,num-1)+"..."
}else{
txt = txt + "..."
}
postsText[i].innerHTML = txt;
}
};
// 调用函数_截取120字数
limitExcerpt(120);
星之书笔记