单行文本溢出,多行文本溢出的省略样式

单行文本溢出

效果:

html

 <div>
    你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!
 </div>

css:

  <style>
    div{
      width: 300px;
      border: 1px solid #ccc;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
  </style>

多行文本溢出

方法一:基于高度截断

html代码:

<div>
    你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!
    你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!你好呀!
  </div>

css 代码:

<style>
    div{
      width: 300px;
      border: 1px solid #ccc;
      position: relative;
      overflow: hidden;
      height: 40px;
      line-height: 20px;
    }
    div::after{
      content: '...';
      position: absolute;
      bottom: 0;
      right: 0;
    }
  </style>
方法二:基础行数截断【纯CSS】

html同上

css 代码

<style>
    div{
      width: 300px;
      border: 1px solid #ccc;
      -webkit-line-clamp: 2;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
    }
  </style>

方法二:基础行数截断【JS实现】

css 代码

<style>
    p{
      width: 300px;
      border: 1px solid #ccc;
      position: relative;
      overflow: hidden;
      line-height: 20px;
    }
    
    .p-after::after {
      content: '...';
      position: absolute;
      bottom: 0;
      right: 0;
      background: -webkit-linear-gradient(left, transparent, #fff 50%);
      background: linear-gradient(to right, transparent, #fff 55%);
    }
  </style>

js 代码

<script>
    (function () {
      const divEl = document.getElementsByTagName('p')[0];
      var lineHeightPro = window.getComputedStyle(divEl).getPropertyValue('line-height');
      var lineHeight = lineHeightPro.substring(0, lineHeightPro.indexOf('p'));
      var heightPro = window.getComputedStyle(divEl).getPropertyValue('height');
      var height = heightPro.substring(0, heightPro.indexOf('p'));
      if ((parseInt(height) / parseInt(lineHeight)) > 3) {
        divEl.classList.add('p-after');
        divEl.style.height = '60px';
      } else {
        divEl.classList.remove('p-after');
      }
    })()
  </script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/218656.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python中的内省与反射机制及其应用场景

1. 概述 在计算机学中&#xff0c;反射式编程&#xff08;英语&#xff1a;reflective programming&#xff09;或反射&#xff08;英语&#xff1a;reflection&#xff09;&#xff0c;是指计算机程序在运行时&#xff08;runtime&#xff09;可以访问、检测和修改它本身状态或…

C++基础 -40- STL库之Vectors向量容器

Vectors 包含着一系列连续存储的元素,类似数组。 Vectors 定义格式&#xff08;需要调用头文件&#xff09; 赋值 遍历 全部代码段 #include "iostream" #include "vector" using namespace std;int main() {//定义vector<string> array1;//使…

【数据结构】顺序栈与链栈

栈的特点是后进先出或先进后出&#xff0c;简称LIFO或FILO&#xff0c;通常top时刻表示栈顶的位置序号&#xff0c;一般空栈时top-1&#xff1b;入栈栈顶指针加1&#xff0c;s->top;出栈栈顶指针减1&#xff0c;s->top-- 【顺序栈】 定义&#xff1a; typedef struct {…

synchronized底层原理(二)

书接上文 文章目录 1. 锁升级原理2. Synchronized锁优化1. 偏向锁批量重偏向&批量撤销2. 自旋优化3. 锁粗化4. 锁消除 1. 锁升级原理 前面介绍了对象的几种加锁状态&#xff0c;分别是无锁、偏向锁、轻量级锁和重量级锁。有下面几个关键点&#xff1a; 当开启JVM偏向延迟…

外贸电商ERP品牌有哪些

随着现代物流科技的发展进步&#xff0c;外贸电商行业也迎来新的发展阶段&#xff0c;各种经营数据的统计分析工作量较大。同时还有不少商贸企业经营管理工作涉及多货币、多汇率核算、多店铺数据协同、多业务模式等&#xff0c;而想要高效处理这些事务&#xff0c;传统的管理模…

游戏开发增笑-扣扣死-Editor的脚本属性自定义定制-还写的挺详细的,旧版本反而更好

2012年在官方论坛注册的一个号&#xff0c;居然被禁言了&#xff0c;不知道官方现在是什么辣鸡&#xff0c;算了&#xff0c;大人不记狗子过 ”后来提交问题给CEO了&#xff0c;结果CEO百忙之中居然回复了&#xff0c;也是很低调的一个人&#xff0c;毕竟做技术的有什么坏心思呢…

数据结构与算法编程题41

线性表中各结点的检索概率不等时&#xff0c;可用如下策略提高顺序检索的效率&#xff1a; 若找到指定的结点&#xff0c;则将该结点和其前驱结点&#xff08;若存在&#xff09;交换&#xff0c;使得经常被检索 的结点尽量位于表的前端。试设计在顺序结构的线性表上实现上述策…

Linux中项目部署步骤

安装jdk&#xff0c;tomcat 安装步骤 1&#xff0c;将压缩包&#xff0c;拷贝到虚拟机中。 通过工具&#xff0c;将文件直接拖到虚拟机的/home下 2&#xff0c;回到虚拟机中&#xff0c;查看/home下&#xff0c;有两个压缩文件 3&#xff0c;给压缩文件做解压缩操作 tar -z…

vue项目解决计算后浮点数精度问题

1.1 问题描述 计算出的结果本来应该为13.8386&#xff0c;但是这里因为js精度问题&#xff0c;导致后边多了一串的0000001。 1.2 使用场景 求和&#xff0c;每个物品的单价*数量 1.3 解决办法 引入第三方库Decimal 1.4 vue项目中Decimal安装步骤 1.4.1 安装Decimal np…

【Cesium】模型平面裁切

const scene viewer.scene;let tileset; let targetY 400.0; let planeEntities []; let selectedPlane; // 选择的切面 let clippingPlanes; // 切面属性// 当鼠标点击切面时&#xff0c;修改相关属性 const downHandler new Cesium.ScreenSpaceEventHandler(viewer.sce…

Pinia的基础使用

main.ts import { createApp } from "vue"; import { createPinia } from "pinia"; import "./style.css"; import App from "./App.vue"; const pinia createPinia(); createApp(App).use(pinia).mount("#app");1.定义st…

商务助理个人简历10篇

商务助理简历模板下载&#xff08;可在线编辑制作&#xff09;&#xff1a;来幻主简历&#xff0c;做好简历&#xff01; 商务助理简历1&#xff1a; 求职意向 求职类型&#xff1a;全职 意向岗位&#xff1a;国际商务、产品助理 意向城市&#xff1a;广东广州 …

驱动开发--内核添加新功能

Ubuntu下这个文件为开发板ls命令的结果 内核的内容&#xff1a; mm&#xff1a;内存管理 fs&#xff1a;文件系统 net&#xff1a;网络协议栈 drivers&#xff1a;驱动设备 arch与init&#xff1a;跟启动相关 kernel与ipc&#xff1a;任务&#xff0c;进程相关 向内核增…

家用打印机品牌多,种类杂,那么如何挑选最适合的家用打印机

在购买最好的家用打印机时&#xff0c;你可能会寻找足够多功能的打印机来满足每个人的需求。你的家人可能需要复印文件签字&#xff0c;扫描精致的旧照片&#xff0c;或者在接到通知后立即打印长篇文章或报告。良好的扫描功能确保你可以快速高效地将工作数字化&#xff0c;而每…

TCP/IP的体系结构

目录 一、TCP/IP的体系结构 二、TCP/IP四层协议的表示方法举例 三、现在因特网使用的TCP/IP体系结构 四、互联网应用层的客户——服务器方式 一、TCP/IP的体系结构 二、TCP/IP四层协议的表示方法举例 三、现在因特网使用的TCP/IP体系结构 四、互联网应用层的客户——服务器…

校园局域网规划设计

摘 要 随着网络技术的发展&#xff0c;校园网的建设已经进入到一个蓬勃发展的阶段。校园网的建成和使用&#xff0c;对于提高教学和科研的质量、改善教学和科研条件、加快学校的信息化进程&#xff0c;开展多媒体教学与研究以及使教学多出人才、科研多出成果有着十分重要而深远…

香港服务器时间不准,差8小时

解决方案1 1、timedatectl查看系统时间 2、查看系统时区 ls /usr/share/zoneinfo 3、删除当前系统所处时区 rm /etc/localtime 4、创建软链接&#xff0c;以替换当前的时区信息 ln -s /usr/share/zoneinfo/Universal /etc/localtime 解决方案2 手动设置硬件时钟 1、设置系…

MySQL limit导致索引选择(选择的并不是最佳索引)案例分析

mysql limit导致索引选择&#xff08;选择的并不是最佳索引&#xff09;案例分析&#xff1a; 这种情况可能是mysql优化器内部bug造成&#xff1a; bug 触发条件如下: 1.优化器先选择了 where 条件中字段的索引&#xff0c;该索引过滤性较好&#xff1b; 2.SQL 中必须有 orde…

视频处理关键知识

1 引言 视频技术发展到现在已经有100多年的历史&#xff0c;虽然比照相技术历史时间短&#xff0c;但在过去很长一段时间之内都是最重要的媒体。由于互联网在新世纪的崛起&#xff0c;使得传统的媒体技术有了更好的发展平台&#xff0c;应运而生了新的多媒体技术。而多媒体技术…

合理布局CRM系统,提升工作效率

一般来说中小企业试用的CRM系统的销售管理模块主要服务于销售人员&#xff0c;CRM系统通过为销售人员提供一系列销售自动化工具&#xff0c;来简化他们的工作&#xff0c;加速销售周期。那么&#xff0c;中小企业CRM系统如何提高销售效率&#xff1f; 一、通用功能 1、销售管…