在实际的项目中,由于文字内容的长度不确定性和页面布局的固定性,难免会出现文字内容超过div或者其他标签区域的情况,此时比较好的做法就是当文字超过限定的div宽度后自动以省略号(…)显示,这样,按照习惯,人们都会知道这里有文字被省略了。

css方法

单行溢出

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

效果如下:
在这里插入图片描述

多行溢出

div{
	display: -webkit-box; 
	-webkit-box-orient: vertical;
	/*设置省略号在容器第四行文本后*/
	-webkit-line-clamp: 4;
	overflow: hidden;
}

效果如下:
在这里插入图片描述

缺点:使用webkit的css扩展属性(webkit是私有属性)-webkit-line-clamp,因使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;-webkit-line-clamp用来限制在一个块元素显示的文本的行数,限定了在第几行后面增加省略号,超出必须隐藏。

多行溢出进阶版

div{
	position:relative;
	line-height:1.4em;
	/*设置容器高度为3倍行高就是显示3行*/
	height:4.2em; 
	overflow:hidden;
}
div::after{
	content:'...';
	font-weight:bold;
	position:absolute;
	bottom:0;
	right:0;
	padding:0 20px 1px 35px;
	background: -webkit-linear-gradient(left, transparent, #fff 55%);
	background: -o-linear-gradient(right, transparent, #fff 55%);
	background: -moz-linear-gradient(right, transparent, #fff 55%);
	background: linear-gradient(to right, transparent, #fff 55%);
}

效果如下:
在这里插入图片描述
原理:在右下角生产一个表示省略号的伪元素,绝对定位到指定宽高的容器右下角,实现多行溢出点点点。

js方法

链接: javascript超过容器后显示省略号效果的方法(兼容一行或者多行)

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐