CSS实现超出部分的省略

这篇具有很好参考价值的文章主要介绍了CSS实现超出部分的省略。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、为什么要省略

        在日常开发过程中我们难免会遇到后端返回给我们的的数据太长的情况,此时我们通常采取的是...的省略方式,其中的CSS大致如下,既可以实现对应的省略显示,但有些时候我们有需要用户可以查看具体的完整信息,这里就那vue来距离,我们可以通过element等三方的组件库来实现对应的鼠标移入显示的功能

overflow:hidden,

text-overflow: ellipsis;

white-space: nowrap;

        就如同下面这样,我们可以通过tooltip的功能来进行实现,但细心的你会发现,由于是循环遍历生成的Dom元素,因此无论我们超出显示还是未超出显示,当我们的鼠标移入后均弹窗对应的完整信息,虽然看似没有啥问题,但如果细心的研究就会发现,为什么未溢出的部分我们还是要移入显示呢?

CSS实现超出部分的省略,CSS,JS,css,前端,elementui,vue.js

2、解决方案 

        那我们该怎么解决呢?相比有人会提出我们可以根据对应的length来判断嘛?这不是很容易嘛,稍微想一想这样是没有问题的,但是仔细一想,万一后端返回的是汉字和数字混合的数据呢?因为数据和汉字的显示宽度不同,那我们到底以多少来判断是否开启鼠标移入显示的功能呢?因此上面那种方法看是没有问题,但仔细一想或者通过数据验证就会发现问题不小。

        因此我们需要采取一种特殊的方法,通过比较文字和盒子的宽度来进行判断,这里我们可以通过盒子的offsetWidth,以及文字的white-space: nowrap;。来进行判断。首先我们可以通过添加移入事件,通过鼠标移入到哪一项去获取对应项的DOM元素,并且将其他的内容拿出来。因为我们需要获取实际文字的宽度,所以我们需要创建一个额外的DOM元素,然后通过插入到body中这样就可以获取到具体文字的宽度了,代码如下

CSS实现超出部分的省略,CSS,JS,css,前端,elementui,vue.js

CSS实现超出部分的省略,CSS,JS,css,前端,elementui,vue.js

        然后我们就可以通过返回的是false还是true来判断文字是否需要鼠标移入后进行完整的显示,效果如下,这样就可以完成只有超出部分才鼠标移入显示,未超出部分则不需要移入显示。

CSS实现超出部分的省略,CSS,JS,css,前端,elementui,vue.jsCSS实现超出部分的省略,CSS,JS,css,前端,elementui,vue.js

3、寄语

        上面这种应该是能准确判断是否需要开启鼠标移入显示完整内容,需要的小伙伴可以研究实现逻辑,欢迎大家进行相关交流文章来源地址https://www.toymoban.com/news/detail-805645.html

到了这里,关于CSS实现超出部分的省略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端css + js +vue +element-ui 实现响应式布局,根据浏览器窗体大小自动响应

    我的环境是element-ui vue版的,其他的也可以,主要是css和js的内容 首先在data中定义一个对象 其实就是css的样式,不过放在了js 里面而已 这里css设置了两个属性 一个是transform 这个属性对div标签的缩放作用,当浏览器窗口或者屏幕大小改变时,就调整这个属性的值,来等比缩放

    2024年02月13日
    浏览(62)
  • CSS - 完美解决 flex 布局下,一行显示固定个数(平均分布)并且强制换行,超出后 “靠左“ 对其(详细解决方案,适用于 Web、Vue、React 等任何前端项目)

    关于 flex 布局下 justify-content: xx,很多朋友都想让其换行后,靠左进行依次排列(默认会平均分布居中)。 本文实现了 纯 CSS (无任何 JS),实现 flex / justify-content 弹性布局下,断行后让元素始终靠左排序, 你可以一键复制示例,然后稍微改改样式就能使用。 如下图所示,

    2024年02月03日
    浏览(45)
  • 前端HTML、CSS、JS、VUE3 汇总

    学习https://developer.mozilla.org/zh-CN/docs/Learn/CSS 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 使用VS Code运行前端代码 在VS Code上安装前端插件 正在更新中~ ✨ 提示:这里可以添加本文要记录的大概内容: 学习路线 知识定位 HTML基础 标签、表格、表单、

    2024年02月13日
    浏览(51)
  • 前端笔记(Css、JS、Vue、UniApp、微信小程序)

    点击穿透 应用场景:点赞或送礼等出现的弹窗遮罩,无法再次触发点击事件 磨砂模糊 底部安全距离 可以放入【common.scss】中,在需要的页面引入 宽度根据内容决定 媒体查询@media 必须是以 @media 开头 使用 mediatype 指定媒体(设备)类型 使用 and | not | only 逻辑操作符构建复杂

    2024年04月26日
    浏览(42)
  • 如何用CSS实现多行省略

    前言 这是个老掉牙的需求啦,不过仍然有很多人在网上找解决方案,特别是搜索结果排名靠前的那些,都是些只会介绍兼容性不好的使用 -webkit-line-clamp的方案。 如果你看到这篇文章,可能代表你正是从那么多千篇一律的文章中跳转过来的,想找更好地方案的。那恭喜你,没

    2024年02月07日
    浏览(42)
  • CSS 实现过长文本省略显示

    CSS 中可以使用 text-overflow 属性和 white-space 属性来实现过长文本省略显示。以下是实现方法: 设置 overflow 为 hidden,以隐藏超出容器范围的文本。 设置 white-space 为 nowrap,以强制文本在同一行显示。 设置 text-overflow 为 ellipsis,以显示省略号。 代码如下: 该代码在容器宽度有

    2024年02月11日
    浏览(32)
  • Css实现...省略号的效果

    本文分为单行省略号的实现和多行省略号的实现 介绍:我们无论写练习或者写项目的时候,像用户名字过长或者文本信息过长需要用到省略号的效果,特此总结一下用法 1、单行省略号 像这种情况,我们一看就会溢出  是叭,我们给div加上overflow:hidden会隐藏掉,但是不太美

    2024年02月15日
    浏览(45)
  • css实现溢出变为省略号

    多行文本溢出的时候,我们可以分为两种情况: 如果文本为一段很长的英文或者数字,则需要添加word-wrap: break-word属性。

    2024年02月15日
    浏览(34)
  • vue3自定义指令实现超出显示省略号,鼠标浮入弹出title,显示全部文本

    mounted 和 updated 是 Vue 生命周期钩子函数,分别表示 指令挂载到元素 和 指令所在组件更新时触发 。 el : HTMLElement 和 binding : DirectiveBinding 是方法参数, el 表示指令作用的元素, binding 包含指令的绑定值、参数和修饰符等信息。 el.offsetWidth 获取的是元素在渲染时所占据的整体

    2024年02月01日
    浏览(48)
  • Vue + Element UI 实现文本超出长度显示省略号,鼠标移上悬浮展示全部内容的方法

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在 Vue 项目中,经常需要处理文本内容过长的情况。本文将介绍如何使用 Vue 和 Element UI 实现文本超出长度时显示

    2024年02月09日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包