css内容过长显⽰省略号的⼏种解决⽅法
单⾏⽂本(⽅法⼀):
语法:
text-overflow : clip | ellipsis
参数:
clip : 不显⽰省略标记(...),⽽是简单的裁切 (clip这个参数是不常⽤的!)
ellipsis : 当对象内⽂本溢出时显⽰省略标记(...) 说明: 设置或检索是否使⽤⼀个省略标记(...)标⽰对象内⽂本的溢出。 最⼤的缺点:text-overflow:ellipsis属性在FF中是没有效果的。
1/* 内容过长显⽰成省略号(内容显⽰为⼀⾏) */
2 white-space: nowrap;/*设置不换⾏*/
3 overflow: hidden; /*设置隐藏*/
4 text-overflow: ellipsis; /*设置隐藏部分为省略号*/
多⾏⽂本(⽅法⼆):
WebKit浏览器或移动端的页⾯:
在WebKit浏览器或移动端(绝⼤部分是WebKit内核的浏览器)的页⾯实现⽐较简单,可以直接使⽤WebKit的css扩展属性(WebKit是私有属性)-webkit-line-clamp ;注意:这是⼀个不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。
-webkit-line-clamp⽤来限制在⼀个块元素显⽰的⽂本的⾏数。为了实现该效果,它需要组合其他的WebKit属性
1/* 内容过长显⽰两⾏,多余为省略号 */
2 text-overflow:ellipsis;/*设置隐藏部分为省略号*/
3 overflow: hidden;/*设置隐藏*/
4 display: -webkit-box;
5 -webkit-line-clamp: 2;/*设置显⽰⾏数,此处为2⾏,可设置其他数字*/
6 -webkit-box-orient: vertical;
这个属性⽐较合适WebKit浏览器或移动端(绝⼤部分是WebKit内核的)浏览器。跨浏览器兼容的⽅案:
第三种⽅法:
⽐较靠谱简单的做法就是设置相对定位的容器⾼度,⽤包含省略号(…)的元素模拟实现;
1 p {
2 position:relative;
3 line-height:1.4em;
4/* 3 times the line-height to show 3 lines */
5 height:4.2em;
6 overflow:hidden;
7 }
8 p::after {
jquery插件分享9 content:"...";
10 font-weight:bold;
11 position:absolute;
12 bottom:0;
13 right:0;
14 padding:0 20px 1px 45px;
15 background:url(css88.b0.upaiyun/css88/2014/09/ellipsis_bg.png) repeat-y;
16 }
注意:
height⾼度真好是line-height的3倍;结束的省略好⽤了半透明的png做了减淡的效果,或者设置背景颜⾊;IE6-7不显⽰content内容,所以要兼容IE6-7可以是在内容中加⼊⼀个标签,⽐如⽤
<span class="line-clamp">...</span>
去模拟;要⽀持IE8,需要将::after替换成:after; JavaScript ⽅案:
⽤js也可以根据上⾯的思路去模拟,实现也很简单,推荐⼏个做类似⼯作的成熟⼩⼯具: 1.Clamp.js
下载及⽂档地址:
var module = ElementById("clamp-this-module");
$clamp(module, {clamp: 3});
2.jQuery插件-jQuery.dotdotdot
1 $(document).ready(function() {
2 $("#wrapper").dotdotdot({
3// configuration goes here
4 });
5 });
此⽂为⾃⼰学习是总结所得,内容多为记载⾃⼰在⽹上看到的⽅法总结以及参考别⼈做法,故存在部分摘抄,⽬的只为提醒⾃⼰多看多记,如有侵权请联系qq:1534147975,如有疑问也可联系次QQ。欢迎前来交流。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论