css 实现文本换行及显示不下隐藏显示省略号

it2026-01-20  14

 

CSS文本超出2行就隐藏并且显示省略号

转载:https://www.cnblogs.com/wyaocn/p/5830364.html  

今天做东西,遇到了这个问题,百度后总结得到了这个结果。

 

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

转载于:https://www.cnblogs.com/dehuachenyunfei/p/11149583.html

最新回复(0)