编辑
2017-06-06
前端开发
00

目录

利用 CSS 实现单行文本省略号、多行文本省略号。

单行省略号

核心代码

Firefox 从 7.0 开始兼容text-overflow:ellipsis;这样的话,以后单行的省略号就可以不借助后台程序或者 js 来做到浏览器兼容了,其核心代码为:

css
selector{ -o-text-overflow: ellipsis; /*兼容 opera*/ text-overflow: ellipsis; /*这就是省略号喽*/ overflow: hidden; /*设置超过的隐藏*/ white-space: nowrap; /*设置不折行*/ width:200px; /*设置宽度*/ }

Demo

html
<!-- HTML --> <ul id="demo1"> <li>单行文本省略号</li> <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li> <li>Aliquam tincidunt mauris eu risus.</li> <li>Vestibulum auctor dapibus.</li> </ul>
css
/* CSS */ #demo1 li { -o-text-overflow: ellipsis; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 250px; margin-left: 12px; list-style: disc inside none; }

注:因为设置了 li 的overflowhidden,所以如果要设置其list-style,则需要设置为inside,而不是outside,不然将会看不见你设置的list-style效果

多行省略号

WebKit 内核浏览器

核心代码

css
.xxx { display:-webkit-box; -webkit-line-clamp:2; /*行数*/ -webkit-box-orient:vertical; overflow:hidden; }

注:chrome 和移动端可用

Demo

html
<-- HTML --> <p class="demo2"> static:对象遵循常规流。top,right,bottom,left 等属性不会被应用。(CSS3)* CSS3 新增属性可能存在描述错误及变更,仅供参考,持续更新 </p>
css
.demo2 { width: 200px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

其他浏览器

目前没有什么 CSS 的属性可以直接控制多行文本的省略显示,比较靠谱的办法应该就是利用相对定位在最后面加上一个省略号了,代码参考下面:

css
.demo2 { position: relative; line-height: 1.5em; /* 高度为需要显示的行数*行高,比如这里我们显示两行,则为 3 */ height: 3em; overflow: hidden; } .demo2:after { content: "..."; position: absolute; bottom: 0; right: 0; padding: 0 5px; background-color: #fff; }

本文作者:青波

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!