HTML:
<div class="zan-text-1"> <p> 佚站互联以建设展示型网站为起点,结合创新理念与进取精神,为创造个人、企业、组织与社会之间的信息平台,让更多人能够方便快捷地传递信息而努力。 </p></div>
<div class="zan-text-2"> <p> 佚站互联以建设展示型网站为起点,结合创新理念与进取精神,为创造个人、企业、组织与社会之间的信息平台,让更多人能够方便快捷地传递信息而努力。 </p></div>
CSS:
.zan-text-1 { color: #FFF; background: #000; width: 410px; height: 22px;}
.zan-text-2 { color: #FFF; background: #000; width: 410px; height: 44px;}
p { line-height: 22px;}
JS(引入jQuery):
$("div[class*='zan-text']").each(function(e){ var divHeight = $(this).height(); var $p = $("p", $(this)).eq(0); while ($p.outerHeight() > divHeight) { $p.text($p.text().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "...")); };});
通过上述代码可以发现,实现这个效果的主要原理在于通过子容器(p)与父容器(div)高度的比较根据正则表达式进行字符截取,直到两者相等为止。
所以控制截取行数的关键自然在div高度上了。
另外分享一个非常简洁方便的实现方式,不过遗憾的是该方法只在webkit内核的浏览器下有效。
<p> 佚站互联以建设展示型网站为起点,结合创新理念与进取精神,为创造个人、企业、组织与社会之间的信息平台,让更多人能够方便快捷地传递信息而努力。</p>
p { overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
其中-webkit-line-clamp属性控制截取文本行数,上述值为两行。
以上信息引用于http://www.yeahzan.com/blog/item/42-37.html
,要是觉得格式很乱,直接到这里看就行。