省略号(一行多行)vue3

组件

<template><div ref="tooltipParentRef" class="moreTipText"><el-tooltip:placement="props.placement"effect="dark":enterable="true":show-after="200":offset="10":popper-class="props.textTooltipPopperClass":content="props.content":disabled="disabledTooltip"><spanv-if="!isOpen":class="['tooltip_text',textClassName,!disabledTooltip ? 'tooltip_ellipsis_text' : '',!disabledTooltip ? textEllipsisClassName : '']":style="{ color: color }"style="width: 100%">{{ props.content }}<span v-if="props.fistLevel && props.fistLevel.length >= 0" class="fistLevel">({{ props.fistLevel }})</span><!-- <spanv-if="props.fistLevel && props.fistLevel.length >= 0 && !disabledTooltip"class="fistLevelpos fistLevel">({{ props.fistLevel }})</span> --></span><spanv-else:class="['tooltip_text',textClassName,!disabledTooltip ? 'tooltip_ellipsis_text' : '',!disabledTooltip ? textEllipsisClassName : '']":style="{ color: color }"style="cursor: pointer"@click="openLink">{{ props.content }}</span></el-tooltip></div>
</template><script lang="ts" setup>
import { ref, watch } from "vue"
const props = defineProps({content: {type: String,default: ""},width: {type: String,default: ""},line: {type: Number,default: 1},textClassName: {type: String,default: ""},textEllipsisClassName: {type: String,default: ""},textTooltipPopperClass: {type: String,default: "default_text-tooltip_popper"},color: {type: String,default: ""},isOpen: {type: Boolean,default: false},url: {type: String,default: ""},fistLevel: {type: String,default: ""},placement: {type: String,default: "top"}
})
const disabledTooltip = ref(true)
const tooltipParentRef = ref()
// 判断当前行文本是否移除
const isEllipsisActive = () => {// getClientRects详细介绍以及案例:https://blog.csdn.net/HeMister/article/details/137640173const DOMRectList = tooltipParentRef.value? tooltipParentRef.value.children[0].getClientRects(): []// DOMRectList.length > = props.line 说明超出显示的行数if (DOMRectList.length == 1) {return DOMRectList[0].width <= tooltipParentRef.value.clientWidth} else {return DOMRectList.length <= props.line}
}
watch(() => props.content,() => {updateStatus()},{immediate: true}
)
function updateStatus() {setTimeout(() => {disabledTooltip.value = isEllipsisActive()})
}const openLink = () => {window.open(props.url, "_blank")
}defineExpose({updateStatus
})
</script>
<style lang="scss" scoped>
.tooltip_text {word-break: break-all;
}
.tooltip_ellipsis_text {&::before {content: "";display: block;}
}
.isacitve {position: relative !important;padding-right: 15px;
}
.fistLevel {font-family: PingFangSC-Medium;font-weight: 500;font-size: 14px;color: #303133;
}
.fistLevelpos {position: absolute;right: -1px;top: 0px;
}
.moreTipText {overflow: hidden;text-overflow: ellipsis;
}
</style>

使用

# 一行

<div class="info-item_box-item" style="margin-bottom: 20px"><img :src="detailData.logo" alt="" class="logo" v-if="detailData.logo" /><svg-icon icon-class="default_firm" size="46px" style="margin-right: 16px" v-else /><div style="width: calc(100% - 118px); display: flex; align-items: center"><newTooltipText:content="detailData[item.code]":line="1"textTooltipPopperClass="table_tooltip2"v-slot="slotProps"><spanclass="line_ellipsis_1 info-item_value firm_title"@mouseover.self="slotProps.mouseoverSelf">{{ detailData[item.code] }}</span></newTooltipText></div>.line_ellipsis_1 {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;
}.table_tooltip2 {max-width: 400px;white-space: pre-wrap;
}

1、父元素设置宽度

2、 :line="1"

3、单行省略号

.line_ellipsis_1 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

# 多行

 <div style="width: calc(100% - 118px)"><newTooltipText:content="detailData[item.code]":line="2"textTooltipPopperClass="table_tooltip2"v-slot="slotProps"><spanclass="line_ellipsis_2 info-item_value"@mouseover.self="slotProps.mouseoverSelf">{{ detailData[item.code] }}</span></newTooltipText></div>.line_ellipsis_2 {line-height: 24px;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;
}
.table_tooltip2 {max-width: 400px;white-space: pre-wrap;
}

1、父元素设置宽度

2、 :line="2"

3、单行省略号

.line_ellipsis_2 {

line-height: 24px;

overflow: hidden;

text-overflow: ellipsis;

display: -webkit-box; //单行没有

-webkit-line-clamp: 2;; //单行没有

-webkit-box-orient: vertical;; //单行没有

}

# 原理

一行看的是宽度:文字超过宽度,就会出省略号 

多行 看的是高度: 设置的2行,如果文字超过3行,他会发现超出高度,就会出省略号 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】卫星通信NTN 3GPP标准化进展分析(三)- 3GPP Release17 内容

一、引言&#xff1a; 本文来自3GPP Joern Krause, 3GPP MCC (May 14,2024) Non-Terrestrial Networks (NTN) (3gpp.org) 本文总结了NTN标准化进程以及后续的研究计划&#xff0c;是学习NTN协议的入门。 【学习笔记】卫星通信NTN 3GPP标准化进展分析&#xff08;一&#xff…

秋招突击——算法练习——8/26——图论——200-岛屿数量、994-腐烂的橘子、207-课程表、208-实现Trie

文章目录 引言正文200-岛屿数量个人实现 994、腐烂的橘子个人实现参考实现 207、课程表个人实现参考实现 208、实现Trie前缀树个人实现参考实现 总结 引言 正文 200-岛屿数量 题目链接 个人实现 我靠&#xff0c;这道题居然是腾讯一面的类似题&#xff0c;那道题是计算最…

【TNT】Target-driveN Trajectory Prediction学习笔记

这里写自定义目录标题 前言(文章的核心思想)(1阶段)(2阶段)(3阶段)(网络框架)1. 场景上下文编码2. 目标预测3. 目标条件运动估计4. 轨迹评分与选择 (模型推理)(总结)(消融研究结论)(网络)(问题厘清) TNT Framework 前言 论文: https://arxiv.org/abs/2008.08294代码: https://…

机器学习(五) -- 监督学习(8) --神经网络1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 无监督学习&#xff08;2&#xff09; --降维2 下篇&#xff1a; 前言 tips&#xff1a;标题前有“***”的内容为补充内容&#xff0c;是给好奇心重的宝宝看的&#xff0c;可自行跳过。文章内容被…

【个人笔记】Git

Tiltle: Github 使用 &#x1f4d6; 快速使用 音标&#xff1a;[ɡɪthʌb] 0 介绍 Github是一个面向开源与私有软件项目的 托管平台&#xff0c;Git源自其内部的版本库格式.2008年上线&#xff0c;18年被微软收购&#xff1b;有很多知名的开源项目&#xff1a;jQuery、pytho…

如何在 CentOS 6 上安装 Nagios

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 Status: 已弃用 本文涵盖的 CentOS 版本已不再受支持。如果您目前正在运行 CentOS 6 服务器&#xff0c;我们强烈建议升级或迁移到受支持…

STM32H750+CubeIDE+FreeRTOS+ETH(LAN8720A)+LWIP

文章目录 STM32H750CubeIDEFreeRTOSETH(LAN8720A)LWIPCubeIDE配置RCC时钟树SYSETH串口MPUFreeRTOSLWIPGPIO然后就可以点击生成代码了&#xff01; 代码修改printf重定向补充硬件复位更改补充链接文件然后就可以编译下载ping成功了&#xff01; socket网络编程 STM32H750CubeIDE…

【计算机网络】浏览器输入访问某网址时,后台流程是什么

在访问网址时&#xff0c;后台的具体流程可以因不同的网站、服务器和应用架构而异。 实际过程中可能还涉及更多的细节和步骤&#xff0c;如缓存处理、重定向、负载均衡等。 此外&#xff0c;不同的网站和应用架构可能会有不同的实现方式和优化策略。 部分特定网站或应用&#x…

云计算第二阶段---DBA Day8-Day9

DBA Day8 该阶段的2天内容,都会和数据库中间件,集群配置有关. 什么是中间件&#xff1f; 通俗来说&#xff0c;就是在正式文件内容从客户端发送或获取请求时&#xff0c;在传播过程中地点中间商&#xff0c;负责管理请求&#xff0c;并对其进行分类。 环境准备: 准备…

AssetsBundleExtractor中文汉化版2.2

感谢-DJ小良汉化 AssetsBundleExtractor工具是一款 人类黎明游戏的assest修改工具 和MOD制作所需要的一款软件 下载地址&#xff1a;https://pan.quark.cn/s/b8104b849fbe

23种设计模式之模板模式

一.什么是模板模式 ‌‌模板模式是一种行为型设计模式&#xff0c;它定义了一个算法的骨架&#xff0c;而将一些步骤留给子类实现。‌这种模式允许子类在不改变算法结构的基础上&#xff0c;重新定义算法的某些步骤。模板模式属于行为型设计模式&#xff0c;主要用于处理那些需…

SpringBoot应用打成ZIP部署包

背景 平常开发SpringBoot应用&#xff0c;打包的时候一般都是按默认的打包方式把所有资源、源码和依赖统一打到一个jar包&#xff0c;这种打包方式方便快捷。最近开发项目遇到一个需求&#xff0c;需要把项目中的配置文件和/bin目录中的启停脚本打到SpringBoot应用jar之外&…

「bug」nvitop ERROR: Failed to initialize curses

nvitop 作为一个优秀个 Nvidia显卡查询库&#xff0c;简单易用且显示信息十分丰富&#xff0c;相比 Nvidia-smi 更方便&#xff0c;简直是每个 开发人员必备的库&#xff0c;安装也十分方便&#xff0c;直接采用 pip install nvitop 即可&#xff0c;调用的时候也是直接在 Term…

Redis:Redis性能影响因素

这里写自定义目录标题 一、CPU对Redis的影响二、磁盘对Redis的影响三、网络对Redis的影响四、Swap对Redis的影响 一、CPU对Redis的影响 二、磁盘对Redis的影响 性能建议&#xff1a; 如果是热点场景&#xff0c;建议大家关闭rdb和aof。在SATA和SAS普通盘上&#xff0c;append…

RocketMQ集群搭建,及RocketMQ-Dashboard部署(前RocketMQ-Console)

集群搭建 RocketMQ不支持单主机搭建主从结构集群&#xff0c;当从节点启动时&#xff0c;即使和主节点设置不同的监听端口&#xff0c;他也要去监听主节点端口&#xff0c;也就是说正常启动的从节点会监听四个端口。原因未知&#xff0c;现象后面会列举出来。 1. 准备JAVA环境…

c++应用网络编程之八SOCKET探究

一、socket 在目前主流的网络通信中&#xff0c;SOCKET编程其实就是网络编程的代名词。在前面反复提到socket&#xff0c;那么socket到底是什么呢&#xff1f;英文的愿意是“插座、槽”的意思。这里虽然不讲解传统的网络协议但不得不简单说明一下。 首先从宏观上看&#xff0c…

超声波模块

HCSR04超声波模块是一种常用的测距模块&#xff0c;它通过检测超声波发射后遇到障碍物所反射的回波&#xff0c;从而测量出与障碍物之间的距离。以下是对HCSR04超声波模块的详细讲解&#xff1a; 一、模块组成与工作原理 组成&#xff1a;HCSR04超声波模块主要由两个压电陶瓷超…

Python一些可能用的到的函数系列131 发送钉钉机器人消息

说明 来自顾同学的助攻 钉钉机器人可以用来发送一些重要的系统消息&#xff0c;例如磁盘将满等等。原本还可以有更强的功能&#xff0c;就是监听群里的消息&#xff0c;然后做出反应&#xff0c;不过这个好像要买企业版&#xff0c;贵的毫无意义。 钉钉发消息有几种模式&#…

Ubuntu18.04 下安装CUDA

安装步骤 1.查看是否安装了cuda # 法1 cat /usr/local/cuda/version.txt # 法2 nvcc --version 2.若没有安装&#xff0c;则查看是否有N卡驱动&#xff0c;若无N卡驱动&#xff0c;则到软件与更新 -> 附加驱动中安装驱动 3.查看N卡驱动支持的cuda版本 nvidia-smi 如下…

VS+C++VTK-VCG三维网格模型鼠标框选拉普拉斯局部平滑

程序示例精选 VSCVTK-VCG三维网格模型鼠标框选拉普拉斯局部平滑 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《VSCVTK-VCG三维网格模型鼠标框选拉普拉斯局部平滑》编写代码&#xff0c;代…