关闭
> css教程 > css >

css实现单行文本和多行文本溢出显示...省略号的方法

来源:网络 文章列表 2019-01-04 8
本文使用text-overflow: ellipsis方法和定位的方法分别实现了单行、多行文本溢出时显示...省略符的方法

 

在写css样式的时候,我们经常会对溢出的文本进行隐藏,如使用overflow:hideen。但是更友好的方案是使用“...”符号来表示文本溢出。

文本溢出有单行和多行的情况,很多时候都是看设计稿具体是啥情况了。

单行文本溢出的情况:

示例

文本溢出显示省略号,文本溢出显示省略...

实现代码:

overflow:hidden;
text-overflow:ellipsis; 
white-space:nowrap;

多行文本溢出的情况

文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,
文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略...

实现代码:

overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;

注意:直接用css属性设置(只有-webkit内核才有作用)

移动端浏览器绝大部分是WebKit内核的,所以该方法适用于移动端;

  • -webkit-line-clamp 用来限制在一个块元素显示的文本的行数,这是一个不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。

  • display: -webkit-box 将对象作为弹性伸缩盒子模型显示 。

  • -webkit-box-orient 设置或检索伸缩盒对象的子元素的排列方式 。

  • text-overflow: ellipsis 以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本。

多行文本溢出实现方法二:css伪类的办法

<div id="con">
  <span id="txt">文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略</span>
  <span class="t"></span>
</div>
<style>
#txt{
  display: inline-block;
  height: 40px;
  width: 250px;
  line-height: 20px;
  overflow: hidden;
  font-size: 16px;
}
.t:after{
  display: inline;
  content: "...";
  font-size: 16px;
    
}
</style>

多行文本溢出实现方法三:利用绝对定位和padding;(跨浏览器解决方案)

看到上例是不是觉得“哇,终于可以跨浏览器使用了”,但你这样想的时候有没有考虑过IE的感受?IE6/7是没有伪类的,还不赶快跪下对IE叫声“大哥”,虽然IE6已经退出市场,但是IE7还是需要兼容的,所以呢,我自己又想到了以下的办法,我这边测试了下感觉还行。

<p id="con2">文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略<span class="t2">...</span>
</p>
<style>
#con2{
  position: relative;
  height: 40px;
  width: 250px;
  line-height: 20px;
  overflow: hidden;
  padding-right: 12px;
}  
.t2{
  position: absolute;
  right: 0;
  bottom: 0;
}
</style>

这个方法的原理是:首先在包含文字的元素里,嵌入一个<span>...</span>,然后包含文字的元素右侧留出...的位置(padding-right),最后利用绝对定位将...定位至右侧的padding-right区域

效果图:

 

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论