欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  首先我们来看一看css实现单行文本超出省略号的方法。
 
  css实现单行文本的溢出显示省略号应该用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。
 
  css单行文本超出省略号的实现代码:
 
  
 
  
 
  <!DOCTYPEhtml>
 
  <html>
 
  <head>
 
  <metacharset=utf-8">
 
  <title>省略号test</title>
 
  <styletype="text/css">
 
  *{
 
  margin:0;
 
  padding:0;
 
  }
 
  body{
 
  padding:10px;
 
  font-family:Arial;
 
  }
 
  #test{
 
  position:relative;
 
  width:150px;
 
  height:20px;
 
  line-height:20px;
 
  text-overflow:ellipsis;
 
  white-space:nowrap;
 
  *white-space:nowrap;
 
  overflow:hidden;
 
  border:1pxsolid#999;
 
  }
 
  #testspan{
 
  position:absolute;
 
  top:0;
 
  right:0;
 
  display:block;
 
  float:left;
 
  }
 
  </style>
 
  </head>
 
  <body>
 
  <divid="test">php中文网php中文网php中文网php中文网php中文网php中文网php中文网</div>
 
  </body>
 
  </html>
 
  css单行文本超出省略号的效果如下:
 
  2345截图20180919100533.png
 
  text-overflow:ellipsis属性只支持单行文本的溢出显示省略号,如果我们要实现多行文本溢出显示省略号呢?下面我们就继续说css实现多行文本超出省略号的方法。(text-overflow:ellipsis属性更多内容可参考css手册)
 
  1、css实现多行文本超出省略号之直接用css属性设置(只有-webkit内核才有作用)
 
  语法:
 
  overflow:hidden;
 
  text-overflow:ellipsis;
 
  display:-webkit-box;
 
  -webkit-line-clamp:2;
 
  -webkit-box-orient:vertical;
 
  移动端浏览器绝大部分是WebKit内核的,所以该方法适用于移动端;
 
  -webkit-line-clamp用来限制在一个块元素显示的文本的行数,这是一个不规范的属性(unsupportedWebKitproperty),它没有出现在CSS规范草案中。
 
  display:-webkit-box将对象作为弹性伸缩盒子模型显示。
 
  -webkit-box-orient设置或检索伸缩盒对象的子元素的排列方式。
 
  text-overflow:ellipsis以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本。
 
  2、css实现多行文本超出省略号之利用绝对定位和padding;(跨浏览器解决方案)
 
  语法:
 
  
 
  p{
 
  position:relative;
 
  line-height:20px;
 
  max-height:40px;
 
  overflow:hidden;
 
  }
 
  p::after{
 
  content:"...";
 
  position:absolute;
 
  bottom:0;
 
  right:0;
 
  padding-left:40px;
 
  background:-webkit-linear-gradient(left,transparent,#fff55%);
 
  background:-o-linear-gradient(right,transparent,#fff55%);
 
  background:-moz-linear-gradient(right,transparent,#fff55%);
 
  background:linear-gradient(toright,transparent,#fff55%);
 
  }
 
  这个方法的原理是:首先在包含文字的元素里,嵌入一个<span>...</span>,然后包含文字的元素右侧留出...的位置(padding-right),最后利用绝对定位将...定位至右侧的padding-right区域。
 
  说明:该方法适用范围广,但文字未超出行的情况下也会出现省略号,可结合js优化该方法。
 
  注意:
 
  将height设置为line-height的整数倍,防止超出的文字露出。
 
  给p::after添加渐变背景可避免文字只显示一半。
 
  由于ie6-7不显示content内容,所以要添加标签兼容ie6-7(如:<span>…<span/>);兼容ie8需要将::after替换成:after。







本文转载自中文网




 

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/css3-style/c55428.shtml