css - 工具提示和 CSS 过渡
问题描述
当鼠标悬停在工具提示上时,我希望工具提示文本过渡,但是我不希望当鼠标悬停在工具提示文本本身所在的空间上时出现工具提示文本。
如果禁用“可见性:隐藏”,则过渡是平滑的,但工具提示文本所在的空间变为可交互的。如果“可见性:隐藏”完好无损,则过渡执行效果不佳。我希望过渡能够在没有响应悬停的工具提示文本所在的空间的情况下工作。
.tooltip {
position: relative;
display: inline-block;
}
.tooltip .tooltiptext {
/* visibility: hidden; */
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
opacity: 0;
transition: opacity .25s;
position: absolute;
z-index: 1;
}
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 0.99;
}
</style>
<body style="text-align:center;">
<div class="tooltip">Hover text
<span class="tooltiptext">Tooltip text</span>
</div>
</body>
</html>
解决方案
只需添加pointer-events: none;
到您的工具提示元素。
我强烈建议您data-attr
改用,并为工具提示创建一个伪元素 ( ::before
)。更少的 HTML 代码。
body {
text-align: center;
}
*[data-tooltip] {
position: relative;
inline-block;
}
*[data-tooltip]::before {
content: attr(data-tooltip);
position: absolute;
bottom: 0px;
left: 50%;
transform: translate(-50%, 100%);
width: 120px;
border-radius: 6px;
padding: 5px 0;
text-align: center;
background-color: black;
color: #fff;
opacity: 0;
transition: opacity .25s;
z-index: 1;
pointer-events: none;
}
*[data-tooltip]:hover::before {
opacity: 0.99;
}
<div data-tooltip="Tooltip text">Hover text</div>
推荐阅读
- javascript - 无法使用 discord.js 编辑角色
- python - Python中的Gelu激活
- rx-java2 - 如何将每个可观察到的发射收集到 rxJava2/rxKotlin2 中的一个对象中?
- ruby-on-rails - 使用它所属模型的属性在 has_many 关联中设置模型属性的最全面方法是什么?
- sql - Bigquery SQL 中的并发会话
- python - C++ - 如何链接 python 库?
- python - 如何获得熊猫行的最大精度?
- jsf - 如何将 primefaces 4.0 升级到 6.2
- amazon-web-services - 如何更改从 AWS Step Function Map 并行运行的 Glue 作业的最大并发运行?
- javascript - Bootsrap 导航栏不下拉