今天作东西,遇到了这个问题,百度后总结获得了这个结果。css
首先,要知道css的三条属性。html
overflow:hidden; //超出的文本隐藏css3
text-overflow:ellipsis; //溢出用省略号显示web
white-space:nowrap; //溢出不换行数组
这三个是css的基础属性,须要记得。dom
可是第三条属性,只能显示一行,不能用在这里,那么若是显示多行呢?spa
css3解决了这个问题,解决方法以下:.net
display:-webkit-box; //将对象做为弹性伸缩盒子模型显示。code
-webkit-box-orient:vertical; //从上到下垂直排列子元素(设置伸缩盒子的子元素排列方式)htm
-webkit-line-clamp:2; //这个属性不是css的规范属性,须要组合上面两个属性,表示显示的行数。
最后的css样式以下:
overflow:hidden;
text-overflow:ellipsis;
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:2;
转载自:http://blog.csdn.net/bing0728004/article/details/51509435
-----------------------------------一下代码还未验证真伪-------------------------------------------
若是是两行或者三行的容器,想要纯用css实现这个方法,是没办法作到的。
能够提供两种方法,一是用程序输出时截字,二是用js判断字数截取。
JS的demo以下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<!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 >
|