CSS文本超出2行就隱藏並且顯示省略號
今天做東西,遇到了這個問題,百度后總結得到了這個結果。
首先,要知道css的三條屬性。
overflow:hidden; //超出的文本隱藏
text-overflow:ellipsis; //溢出用省略號顯示
white-space:nowrap; //溢出不換行
這三個是css的基礎屬性,需要記得。
但是第三條屬性,只能顯示一行,不能用在這里,那么如果顯示多行呢?
css3解決了這個問題,解決方法如下:
display:-webkit-box; //將對象作為彈性伸縮盒子模型顯示。
-webkit-box-orient:vertical; //從上到下垂直排列子元素(設置伸縮盒子的子元素排列方式)
-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
>
|