CSS文字溢出显示省略号,且出现title或者tooltip

简介: CSS文字溢出显示省略号,且出现title或者tooltip

背景


当文字溢出时显示省略号是每一个前端开发工程师必备技能之一,但是文字溢出省略号显示后就无法看到完整内容了,这个时候就可以用到标签的title属性,或者一些UI组件库的tooltip组件,当鼠标移入元素则出现提示气泡,显示完整内容。


前端工程师常见的作法就是让提示气泡一直存在,不管文字是否溢出,鼠标移入都会出现提示气泡。但是有些场景下,需求方要求文字未溢出时鼠标移入不显示提示气泡,文字溢出时才显示提示气泡。


需求总结


文字未溢出时,鼠标移入不出现提示气泡,文字溢出时,鼠标移入显示提示气泡。


实现原理


  1. 获取到包裹文字元素的宽度
  2. 给元素添加鼠标移入事件
  3. 每次鼠标移入时,判断元素宽度是否符合要求
  4. 如果不符合,则添加气泡,否则不添加


实现代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS文字溢出显示提示title或者tooltip</title>
    <style>
        div {
            width: 100px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
    </style>
</head>
<body>
    <div>
        <span>我是一段没有用的废话!</span>
    </div>
</body>
<script>
    let dDom = document.getElementsByTagName('div')[0];
    let sDom = document.getElementsByTagName('span')[0];
    let dDomWidth = sDom.parentNode.offsetWidth;
    let sDomWidth = sDom.offsetWidth;
    sDom.addEventListener('mouseover', function () {
        if (sDomWidth > dDomWidth) {
            sDom.title = '我是一段没有用的废话!'
        }
    })
</script>
</html>


总结


实现该种需求的重点就是获取到元素宽度,以及合理的判断宽度。

4.png


相关文章
|
1月前
CSS3制作的聚光灯下倒影文字选装动画特效源码
CSS3聚光灯下倒影文字特效是一段基于CSS3实现的聚光灯下带倒影的文字旋转动画效果代码,具有真实的视觉感,同时文字还会在旋转过程中显示出灯光的反射效果,很有意思,欢迎对此段代码感兴趣的朋友前来下载使用。
32 6
|
1月前
纯css3发光霓虹灯文字闪烁特效代码
纯css3发光霓虹灯文字闪烁特效代码是一款彩色的店铺名称文字动画特效。
37 6
|
1月前
jQuery+CSS3模拟过山车动态的文字动画特效源码
jQuery+CSS3模拟过山车动态的文字动画特效源码实现在全黑的背景下,画面中的文本呈现过山车的轨迹动画上下滚动转圈,且伴随文本颜色渐变效果,非常有意思,欢迎对此特效感兴趣的朋友前来下载参考。
24 1
|
3月前
|
前端开发
前端基础(五)_CSS文本文字属性、背景颜色属性
本文详细介绍了CSS中关于文本和背景颜色的样式属性。包括字体大小、字体族、字体加粗、字体样式、文本行高、`font`属性、文本颜色、文本对齐方式、文本装饰线、首行缩进等文本属性,以及背景颜色、背景图片、背景重复、背景位置等背景属性。文章通过示例代码展示了这些属性的具体应用和效果。
73 3
前端基础(五)_CSS文本文字属性、背景颜色属性
|
4月前
|
前端开发
简单几行代码CSS实现网页自动打文字效果
简单几行代码CSS实现网页自动打文字效果
61 1
|
3月前
|
前端开发
css中的多行省略和单行省略
css中的多行省略和单行省略
|
2月前
|
Web App开发 前端开发 iOS开发
|
3月前
|
前端开发
css中的多行省略和单行省略
css中的多行省略和单行省略
|
前端开发 弹性计算
css文本超出2行就隐藏并且显示省略号
首先,要知道css的三条属性。 overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用省略号显示 white-space:nowrap; //溢出不换行 这三个是css的基础属性,需要记得。
4535 0

热门文章

最新文章