CSS - 文字内容溢出的省略如何实现?

我们在前端项目开发中,常常会遇到这种场景,文字显示不下了,内容超出了,但为了有个良好的用户体验,需要把文本内容结尾显示...。

先说点题外话

我们之前在js-tool-big-box中实现过字符串中间关键内容隐藏的功能,虽然跟这种情况不一样,但如果在面试中,如果遇到了自己熟悉的题目,发挥自己联想能力,那也是很加分的。都是加点点点嘛,我为啥不能说。

<template>
  <div class="box-404">
    <p>js-tool-big-box</p>
    <p>做功能更丰富的前端JS库</p>
    <div class="txt">{{ val }}</div>
  </div>
</template>

<script>
import { stringBox } from 'js-tool-big-box';

export default {
  name: 'Page404',
  data () {
    return {
      val: '',
    }
  },
  created() {
    const oldString = '13833323232';
    this.val = stringBox.maskString(oldString, 3, 4, '.', 3);
  },
}
</script>

 

再来个单行的溢出省略

单行的比较好搞,设定好元素的宽度,超出部分显示点点点,

<template>
  <div class="box-404">
    <p>js-tool-big-box</p>
    <p>做功能更丰富的前端JS库</p>
    <div class="txt">我们有好多水果,比如香蕉,比如压力,比如苹果,比如柿子,比如西瓜,比如菠萝,比如杨桃</div>
  </div>
</template>

// css部分
.txt {
    overflow: hidden;
    line-height: 40px;
    width:400px;
    height:40px;
    border:1px solid red;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

 

这里的text-overflow是重点,他有clipellipsis两个属性值可选, clip表示超出部分直接裁剪掉,ellipsis表示文本内容溢出后显示 ... 

多行文字截断 - 根据行数断

比如我们还可以限定,超出2行,或者超出3行、4行的时候,显示...,这个就很有意思

.txt {
    width: 100px;
    border: 1px solid red;
    -webkit-line-clamp: 3;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
  }

 

在以上代码中,我们并没有给元素设置高度,而是通过-webkit-line-clamp设置行数,达到了溢出显示省略的效果。当然, text-overflow的设置也是不可少的

定位三点式

意思就是,我们预先准备一个元素,设定高度和line-height高度,这样我们就可以知道,文本超出几行就开始看不见内容了。然后在元素内部定位一个三个点的元素,看上去就像溢出省略一样。

在图上图中,展示三个点就可以啦。

.txt {
    position: relative;
    overflow: hidden;
    border: 1px solid red;
    width: 100px;
    height: 40px;
    padding-right: 20px;
    line-height: 20px;
  }

相关推荐

  1. css文本超长溢出显示省略号 ...

    2024-06-08 12:42:01       25 阅读
  2. 文本溢出显示省略号

    2024-06-08 12:42:01       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 12:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 12:42:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 12:42:01       82 阅读
  4. Python语言-面向对象

    2024-06-08 12:42:01       91 阅读

热门阅读

  1. 深度解读ChatGPT基本原理

    2024-06-08 12:42:01       26 阅读
  2. 骑砍2霸主MOD开发(11)-瓦兰迪亚火骑兵

    2024-06-08 12:42:01       30 阅读
  3. C#面:Server.UrlEncode、HttpUtility.UrlDecode的区别

    2024-06-08 12:42:01       24 阅读
  4. MySQL-锁

    MySQL-锁

    2024-06-08 12:42:01      24 阅读
  5. Dijkstra算法(迪杰斯特拉算法)

    2024-06-08 12:42:01       32 阅读
  6. 如何使用Python中的random模块生成随机数

    2024-06-08 12:42:01       28 阅读
  7. 【Docker学习】docker push简述

    2024-06-08 12:42:01       32 阅读
  8. BCS2024│云原生安全论坛启动

    2024-06-08 12:42:01       31 阅读
  9. docker 命令

    2024-06-08 12:42:01       27 阅读
  10. Docker image pandoc/core from a Node.js Express application

    2024-06-08 12:42:01       28 阅读
  11. 04Docker网络基础配置

    2024-06-08 12:42:01       31 阅读
  12. docker_如何推送镜像到仓库(hub.docker.com)

    2024-06-08 12:42:01       24 阅读
  13. psql导入数据报错排查

    2024-06-08 12:42:01       31 阅读