CSS文本溢出进行"..."显示

项目中常常有需要我们对溢出文本进行"…"显示的操作,单行多行的情况都有(具体几行得看设计师心情了)。
常用方法:

1、单行超出显示"…"

// css
	{
		overflow:hidden;
	    text-overflow:ellipsis;
	    white-space:nowrap
    }

2、多行超出显示"…"
(只有-webkit内核才有作用)

// css
	{
		  overflow: hidden;
		  text-overflow: ellipsis;
		  display: -webkit-box;
		  -webkit-line-clamp: 2;
		  -webkit-box-orient: vertical;
    }

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

-webkit-line-clamp 用来限制在一个块元素显示的文本的行数,这是一个不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。
display: -webkit-box 将对象作为弹性伸缩盒子模型显示 。
-webkit-box-orient 设置或检索伸缩盒对象的子元素的排列方式 。
text-overflow: ellipsis 以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本。

当我们需要兼容其它内核的浏览器时就需要自己做一点小聪明(利用绝对定位):
这个方法需要准确计算文本区域的宽高及每一行文本的高度。

<div class="text">
<span>
这是一个测试文本,测试文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略
</span>
<span class="ellipsis">...</span>
</div>
<style>
.text{
  position: relative;
  height: 48px;
  width: 260px;
  line-height: 24px;
  overflow: hidden;
  padding-right: 20px;
}  
.ellipsis{
  width:20px;
  position: absolute;
  right: 0;
  bottom: 0;
}
</style>

还有许多方法可以实现,例如我们还可以使用js插件来实现该功能,自行搜索吧!

你可能感兴趣的:(CSS,前端,CSS,文本溢出)