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


相关文章
|
3天前
|
前端开发 容器
CSS 超出内容... 或者多行省略及两端对齐及超出多行居中显示
该文本是关于CSS样式技巧的摘要:包括单行和多行文本超出时的省略显示方法,以及Flex布局的两端对齐和一行超出后多行居中的示例代码。
|
3天前
|
前端开发 容器
css 中可以让文字在垂直和水平方向上重叠的两个属性是什么?
css 中可以让文字在垂直和水平方向上重叠的两个属性是什么?
6 1
|
1月前
|
前端开发
CSS多行省略的方法有哪些
CSS多行省略的方法有哪些
|
1月前
|
弹性计算 前端开发
CSS 文字超出变为省略号
CSS 文字超出变为省略号
12 0
|
2月前
|
前端开发
CSS文本单行溢出显示省略号与多行溢出显示省略号(简单易懂)
CSS文本单行溢出显示省略号与多行溢出显示省略号(简单易懂)
|
2月前
超简单的html+css魔幻霓虹灯文字特效
超简单的html+css魔幻霓虹灯文字特效
14 3
超简单的html+css魔幻霓虹灯文字特效
|
2月前
|
Web App开发 弹性计算 前端开发
纯 CSS 实现多行文字截断
纯 CSS 实现多行文字截断
21 1
|
3天前
|
移动开发 HTML5
HTML5/CSS3粒子效果进度条代码
HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从进度条上散落下来
15 0
HTML5/CSS3粒子效果进度条代码
|
7天前
|
移动开发 前端开发 JavaScript
:掌握移动端开发:HTML5 与 CSS3 的高效实践
:掌握移动端开发:HTML5 与 CSS3 的高效实践
22 1
|
12天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。