首頁  >  文章  >  web前端  >  css超出2行部分省略號解決方法

css超出2行部分省略號解決方法

高洛峰
高洛峰原創
2017-03-16 09:56:202487瀏覽

今天做東西,遇到了這個問題,百度後總結得到了這個結果。

首先,要知道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; 

如果是兩行或三行的容器,想要純用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(&#39;demo&#39;);
// slice() 方法可从已有的数组中返回选定的元素。
// 您可使用负值从数组的尾部选取元素。
// 如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
// 此处需要根据需求自行修改slice()的值,以达到要显示的内容
var demoHtml = oBox.innerHTML.slice(0,10)+&#39;...&#39;;
// 填充至指定位置
oBox.innerHTML = demoHtml;
</script>
</body>
</html>


以上是css超出2行部分省略號解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn