在部分前端页面中会有一些文字介绍,但有时候显示一大段的文字会影响页面的美观和排版,这个时候借助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>

 

发表评论

邮箱地址不会被公开。 必填项已用*标注