今天做東西,遇到了這個(gè)問(wèn)題,百度后總結(jié)得到了這個(gè)結(jié)果。
首先,要知道css的三條屬性。
overflow:hidden; //超出的文本隱藏
text-overflow:ellipsis; //溢出用省略號(hào)顯示
white-space:nowrap; //溢出不換行
這三個(gè)是css的基礎(chǔ)屬性,需要記得。
但是第三條屬性,只能顯示一行,不能用在這里,那么如果顯示多行呢?
css3解決了這個(gè)問(wèn)題,解決方法如下:
display:-webkit-box; //將對(duì)象作為彈性伸縮盒子模型顯示。
-webkit-box-orient:vertical; //從上到下垂直排列子元素(設(shè)置伸縮盒子的子元素排列方式)
-webkit-line-clamp:2; //這個(gè)屬性不是css的規(guī)范屬性,需要組合上面兩個(gè)屬性,表示顯示的行數(shù)。
最后的css樣式如下:
overflow:hidden;
text-overflow:ellipsis;
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:2;
如果是兩行或者三行的容器,想要純用css實(shí)現(xiàn)這個(gè)方法,是沒(méi)辦法做到的。
可以提供兩種方法,一是用程序輸出時(shí)截字,二是用js判斷字?jǐn)?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">怎么顯示兩行或三行文字,然后多出的部分省略號(hào)代替?</div> <script> // js無(wú)法直接通過(guò)class獲取對(duì)象,必須自己寫一個(gè)方法,這樣效率會(huì)非常低,原生js里最好用id獲取, // 直接用id獲取domo對(duì)象 var oBox=document.getElementById(’demo’); // slice() 方法可從已有的數(shù)組中返回選定的元素。 // 您可使用負(fù)值從數(shù)組的尾部選取元素。 // 如果 end 未被規(guī)定,那么 slice() 方法會(huì)選取從 start 到數(shù)組結(jié)尾的所有元素。 // 此處需要根據(jù)需求自行修改slice()的值,以達(dá)到要顯示的內(nèi)容 var demoHtml = oBox.innerHTML.slice(0,10)+’...’; // 填充至指定位置 oBox.innerHTML = demoHtml; </script> </body> </html>
【 微信掃一掃 】