css超出2行部分省略号解决方法
程序员文章站
2022-04-24 14:34:27
...
今天做东西,遇到了这个问题,百度后总结得到了这个结果。
首先,要知道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('demo'); // slice() 方法可从已有的数组中返回选定的元素。 // 您可使用负值从数组的尾部选取元素。 // 如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。 // 此处需要根据需求自行修改slice()的值,以达到要显示的内容 var demoHtml = oBox.innerHTML.slice(0,10)+'...'; // 填充至指定位置 oBox.innerHTML = demoHtml; </script> </body> </html>
以上就是css超出2行部分省略号解决方法的详细内容,更多请关注其它相关文章!
推荐阅读
-
CSS文本超出2行就隐藏并且显示省略号
-
CSS3 - 文本超出隐藏显示省略号(单行 / 多行)
-
CSS文本超出自动隐藏显示省略号
-
css文本超出隐藏显示省略号
-
CSS超出文本指定宽度用省略号代替和文本不换行
-
CSS实现不换行/自动换行/文本超出隐藏显示省略号
-
当页面内容溢出或超出边界时显示省略号_html/css_WEB-ITnose
-
解决html表格中内容超出不强制换行和超出宽度自动隐藏并显示省略号_html/css_WEB-ITnose
-
css实现超出部分显示省略号,css实现字母自动折行
-
图片宽度超出div,css控制图片不改变原大小情况居中显示,图片超出div部分隐藏_html/css_WEB-ITnose