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

來源:互聯網
上載者:User
今天做東西,遇到了這個問題,百度後總結得到了這個結果。

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

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

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

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

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

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

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

display:-webkit-box; //將對象作為Auto Scaling盒子模型顯示。

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.