国产精品无码久久久久久,精品久久久久久国产,波多野结衣中文字幕一区二区三区,久久久亚洲欧洲日产国码农村

css超出2行部分省略號...

2016/12/16 8:35:30   閱讀:1857    發(fā)布者:1857

今天做東西,遇到了這個問題,百度后總結(jié)得到了這個結(jié)果。

 

首先,要知道css的三條屬性。

overflow:hidden; //超出的文本隱藏

text-overflow:ellipsis; //溢出用省略號顯示

white-space:nowrap; //溢出不換行

這三個是css的基礎屬性,需要記得。

但是第三條屬性,只能顯示一行,不能用在這里,那么如果顯示多行呢?

 

css3解決了這個問題,解決方法如下:

display:-webkit-box; //將對象作為彈性伸縮盒子模型顯示。

-webkit-box-orient:vertical; //從上到下垂直排列子元素(設置伸縮盒子的子元素排列方式)

-webkit-line-clamp:2; //這個屬性不是css的規(guī)范屬性,需要組合上面兩個屬性,表示顯示的行數(shù)。

 

最后的css樣式如下:

overflow:hidden; 

text-overflow:ellipsis;

display:-webkit-box; 

-webkit-box-orient:vertical;

-webkit-line-clamp:2; 

 

 

如果是兩行或者三行的容器,想要純用css實現(xiàn)這個方法,是沒辦法做到的。

 

可以提供兩種方法,一是用程序輸出時截字,二是用js判斷字數(shù)截取。

 

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() 方法可從已有的數(shù)組中返回選定的元素。 
// 您可使用負值從數(shù)組的尾部選取元素。 
// 如果 end 未被規(guī)定,那么 slice() 方法會選取從 start 到數(shù)組結(jié)尾的所有元素。 
// 此處需要根據(jù)需求自行修改slice()的值,以達到要顯示的內(nèi)容 
var demoHtml = oBox.innerHTML.slice(0,10)+...; 
// 填充至指定位置 
oBox.innerHTML = demoHtml; 
</script> 
</body> 
</html>