CSS定义单、多行超出部分显示为省略号
在部分前端页面中会有一些文字介绍,但有时候显示一大段的文字会影响页面的美观和排版,这个时候借助CSS使超出部分显示为省略号,起到了美化页面但又不影响内容的显示效果。
www.programman.cn
一、单行超出部分显示为省略号
white-space: nowrap; 表示文本不会换行,在同一行继续,直到遇到标签为止;
overflow: hidden; 不显示超过对象尺寸的内容,就是把超出的部分隐藏了;
text-overflow: ellipsis; 当文本对象溢出是显示…,当然也可是设置属性为clip不显示点点点;
-o-text-overflow: ellipsis; 为了兼容opera浏览器;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>单行超出显示为省略号</title>
<style>
* {
margin: 0px;
padding: 0px;
}
.box {
width: 300px;
height: 500px;
margin: 50px auto;
}
.overflow{
width: 220px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
</style>
</head>
<body>
<div class="box">
<p>
css 实现单行文本超出长度显示省略号
</p>
<p class="overflow">
css 实现单行文本超出长度显示省略号
</p>
</div>
</body>
</html>
二、多行超出部分显示为省略号
1、直接用css属性设置(只有-webkit内核才有作用)
注:移动端浏览器绝大部分是WebKit内核的,所以该方法适用于移动端;
-webkit-line-clamp: 3; 用来限制在一个块元素显示的文本的行数,这是一个不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中;
display: -webkit-box; 将对象作为弹性伸缩盒子模型显示;
-webkit-box-orient: vertical; 设置或检索伸缩盒对象的子元素的排列方式;
text-overflow: ellipsis; 以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>多行超出显示为省略号</title>
<style>
* {
margin: 0px;
padding: 0px;
}
.box{
width: 280px;
height: 62px;
margin: 50px auto;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
</style>
</head>
<body>
<div class="box">
css 实现多行文本超出长度显示省略号,css 实现多行文本超出长度显示省略号,css 实现多行文本超出长度显示省略号,css 实现多行文本超出长度显示省略号
</div>
</body>
</html>
2、利用伪类
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>多行超出显示为省略号-利用伪类</title>
<style>
* {
margin: 0px;
padding: 0px;
}
.box {
width: 280px;
height: 62px;
margin: 50px auto;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
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, #fff 70%);
background: -o-linear-gradient(right, transparent, #fff 70%);
background: -moz-linear-gradient(right, transparent, #fff 70%);
background: linear-gradient(to right, transparent, #fff 70%);
}
</style>
</head>
<body>
<div class="box">
<p>css 实现多行文本超出长度显示省略号,css 实现多行文本超出长度显示省略号,css 实现多行文本超出长度显示省略号,css 实现多行文本超出长度显示省略号</p>
</div>
</body>
</html>