限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他外来的WebKit属性。常见结合属性:
display: -webkit-box必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
text-overflow,可以用来多行文本的情况下,用省略号“...”隐藏超出范围的文本 。
如果想要在一行里实现“超出长度显示省略号”,是可以的。
overflow: hiddenwhite-space: nowraptext-overflow:ellipsis这几句css就可以,不要加上去的容器一定要写了宽度的
注意:这里实现的是“超出长度”,而不是“超出字数”,并且在一行里实现。
如果是两行或者三行的容器,想要纯用css实现这个方法,是没办法做到的。
可以提供两种方法,一是用程序输出时截字,二是用js判断字数截取。
JS的demo如下:
<!DOCTYPE html><html>
<head>
<meta charset="utf-8">
<title>Examples</title>
<style type="text/css">
.demo{width:100px}
</style>
</head>
<body>
<div class="demo" id="demo">怎么显示两行或三行文字,然后多出的部分省略号代替?</div>
<script>
// js无法直接通过class获取对象,必须自己写一个方法,这样效率会非常低,原生js里最好用id获取,
// 直接用id获取domo对象
var oBox=document.getElementById('demo')
// slice() 方法可从已有的数组中返回选定的元素。
// 您可使用负值从数组的尾部选取元素。
// 如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
// 此处需要根据需求自行修改slice()的值,以达到要显示的内容
var demoHtml = oBox.innerHTML.slice(0,10)+'...'
// 填充至指定位置
oBox.innerHTML = demoHtml
</script>
</body>
</html>