谈谈文本出现省略号和tooltip相爱相杀的那些事

在开发过程中,一般都会遇到一行显示不下便进行省略号处理的方式(我是省略文字...)。在使用element-ui的表格组件时,便常常使用这个,但也一直受其BUG困扰,在edge & firefox 时,会在出现省略号时并不出现弹框。归根结底在于,如何判断是否省略号,只需解决这个问题即可

讨论如何判断文本是否出现省略号

文本出现省略号

/* 单行显示 */
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
/* n行显示 */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: n;
overflow: hidden;

如何判断文本是否出现了省略号

scrollWidth

目前一般是通过 scrollWidth > clientWidth 来判断文本出现了省略号

为此,我查看了iviewelement-ui 都是通过该方式实现,只是element外加了一些方式加以辅助,奈何依旧有问题

elment

const range = document.createRange();
      range.setStart(cellChild, 0);
      range.setEnd(cellChild, cellChild.childNodes.length);
      const rangeWidth = range.getBoundingClientRect().width;
      const padding = (parseInt(getStyle(cellChild, 'paddingLeft'), 10) || 0) +
        (parseInt(getStyle(cellChild, 'paddingRight'), 10) || 0);

      if ((rangeWidth + padding > cellChild.offsetWidth || cellChild.scrollWidth > cellChild.offsetWidth) {
        // tooltip 出现
      }

可惜在element-uiissue中已经有好几个类似的问题,都没有加以解决

因而考虑除了上诉方式还有其他的形式进行判断吗?

在使用了上述的方式,感觉更加是浏览器的问题,目前这个问题只能暂时保留了。

总结

目前依旧无法解决这个问题,这应该也是element一直没有处理的缘故吧,虽然都说是通过上面的方式解决,可一些特殊情况依旧无法处理。暂时默认为浏览器的bug吧

demo

原文地址:https://www.cnblogs.com/sinosaurus/p/12113202.html

时间: 2024-10-11 03:37:03

谈谈文本出现省略号和tooltip相爱相杀的那些事的相关文章

无责任猜想#冰桶挑战#大佬们相爱相杀众生相

看#冰桶挑战#大佬们点名的关系图谱,无意中发现很多有趣的关系啊,下面为八妹子自娱自乐无责任猜想,认真你就输了哦! 1.  微软谷歌苹果Facebook,老大哥.新小弟之间的相互厮杀 FACEBOOK的创始人马克扎克伯克点名了微软创始人比尔盖茨,苹果CEO蒂姆库克被微软点名,谷歌联合创始人拉里佩奇被微软点名,谷歌与微软.微软与苹果.苹果与谷歌.FACEBOOK与微软,堪堪上演了一幕幕精彩的黑帮风云,各路传说级的大哥纷纷登场,兄弟,冰桶一起"冻"起来! 这还不算,亚马逊的CEO贝索斯居然点

创新改变一切,旅游@人人店与传统旅游的相爱相杀

旅游@人人店开创了共享旅游的新模式,与"原住民"传统旅行社之间也形成了"相爱相杀"的关系.br/>为什么"相杀"?传统旅行社以地理位置为据点来收客,而旅游@人人店依托共享旗舰店和新零售团队,没有地理位置的局限,随着旅游@人人店的不断发展壮大,必然有一部分客户是重合的.但其实"相杀"只是表象,本质上传统旅行社与旅游@人人店的关系是"相爱"的.因为旅游@人人店为传统旅行社转型提供了最佳选择.为什么这么说?

从合作到竞争 看苹果与三星十年间的相爱相杀

商界没有永恒的朋友和敌人,只有永恒的利益,即便自己想树立一个永恒的敌人,时代的趋势和金钱的诱惑也会把他们逼成朋友- 过去十年,苹果和三星把这段话演绎到了极致,他们两家的关系错综复杂又琳琅满目:"朋友.敌人.竞争者,合作者,简直一部完美的谍战大片."在苹果.三星最火的几年里,有段子手就称这两家企业联手拿走整个智能手机市场101%的利润,多出来的1%是其他厂商的亏损.当然上面这番族是玩笑话,但这也从侧面反映出了当时高端市场几乎是二者垄断.在很长一段时间内,全世界都盯着苹果,但苹果的眼里只有

CSS奇遇 -- flex和white-space:nowrap的相爱相杀

需求:使用flex布局,超出部分想使用点点点显示 一.方法1使用min-width:0 效果: HTML代码如下: <div class="team-body"> <div class="team-item"> <div class="team-item-header"> <div class="team-item-thumb"> <img src="https:

5G与WiFi6相爱相杀的关系

  近半年来,5G网络的消息层出不穷.5G商用牌照正式发放,三大运营商表示要在今年年底前至少覆盖40个城市,最新的中国5G网络招标结果等.在人们对5G展示最大热情的时候,WiFi6横空出世.  5G与WiFi6的竞争与相互补充  2019 年,基于运营商的移动连接(LTE 和 5G 蜂窝网络)和非授权无线网络(WiFi6,或者称为 802.11ax)将在两个主要方面相互靠拢:无线电信号编码和资源调度.两种无线系统采用相同的方法使每个基站或无线接入点都能同时与更多设备通信.尽管在技术上运用的方法相

程序员相爱相杀鄙视指南

有人的地方就有江湖.在互联网技术世界里,身为中流砥柱的程序员们,看似每天都坐在屏幕前,两耳不闻公司事,一心苦练编程功.殊不知,在“技术至上”的程序世界,早已暗波汹涌,一条条相爱相杀的鄙视链盘根错节,江湖的争斗久久未分出胜负…… 相信吃瓜群众都知道,编程语言是程序员的立身之本,然而,很少有人知道,不同的编程语言出自各派.功能不一,它更代表了程序员在江湖上的地位高低. 程序语言太复杂,一旦选不好,就会落入鄙视链的底层! 最心疼的还是PHP工程师,明明人家也是为公司奉献很多的,却遭到全体的鄙视. 如果

CSS3如何实现超出指定文本以省略号显示效果

作者:zhanhailiang 日期:2014-10-24 不做前端很久了,今天从重构师那里了解到CSS3已经可以实现很多以往必须通过JS才能实现的效果,如渐变,阴影,自动截断文本展示省略号等等强大效果,而且这些功能日渐成熟,已经大量用于生产环境.H5真的日渐成熟了,得恶补下了. 以下分享实现指定文本超出部分以省略号展示的Demo: <style> .text1 { width:200px; overflow:hidden; text-overflow:ellipsis; -o-text-ov

css text-overflow溢出文本显示省略号

<div style="width: 100px; overflow: hidden; text-overflow:ellipsis"> <nobr>当对象内文本溢出时显示省略标记</nobr></div> 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 (clip这个参数是不常用的!) ellipsis : 当对象内文本溢出时显示省略标记(...)

CSS3怎样实现超出指定文本以省略号显示效果

作者:zhanhailiang 日期:2014-10-24 不做前端非常久了,今天从重构师那里了解到CSS3已经能够实现非常多以往必须通过JS才干实现的效果,如渐变,阴影,自己主动截断文本展示省略号等等强大效果,并且这些功能日渐成熟,已经大量用于生产环境.H5真的日渐成熟了,得恶补下了. 下面分享实现指定文本超出部分以省略号展示的Demo: <style> .text1 { width:200px; overflow:hidden; text-overflow:ellipsis; -o-tex