html文字溢出以省略号(...)替代

昨天有个朋友问了一个问题,就是多行文字溢出最后用...替代,看了一下,以前做单行文字溢出,多行的还真没做过,所以自己也整了一哈,这里贴出来分享一下。

一、单行文本溢出

对于单行文本溢出 text-overflow: ellipsis 就能完美的解决,而且所有主流浏览器都支持 text-overflow 属性。这里不做过多的讲述。

这里写了一个demo

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>测试</title>
        <style>
            div{
                width: 200px;
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
            }
        </style>
    </head>
    <body>
        <div>
            你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决
        </div>
    </body>
</html>

效果:

这里

overflow: hidden;
white-space: nowrap; //强制不换行

两段代码必须加上,否则的话是起不到作用的。

二、多行文本溢出

我在网上查阅了一下,找到了一些可以实现的方法,于是亲自实测一番。

1、伪元素(:after)实现方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>测试</title>
		<style>
			div{
				position: relative;
				overflow: hidden;
				 200px;
				height: 55px;
				line-height: 30px;
				font-size: 20px;				
			}
			div:after{
				position: absolute;
				bottom: 0;
				right: 0;
				padding:0 5px 1px 45px;
				content: '...';				
				background:url(ellipsis_bg.png) repeat-y;
			}
		</style>
	</head>
	<body>
		<div>
			你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决你懂不懂我的心,其实我就是想试试两行要怎么解决
		</div>
	</body>
</html>

测试结果如下:

  

原文地址:https://www.cnblogs.com/qingcaixiaoge/p/5549158.html