html - z-index 不适用于自定义嵌套工具提示

标签 html css tooltip z-index

这是我的工具提示:

  .tooltip-content{
    visibility: hidden;
    min-width: 180px;
    background-color: rgba(38, 38, 38, 0.9);
    color: #fff;
    text-align: center;
    border-radius: 4px;
    padding: 5px 3px;
    position: absolute;
    font-size: 0.8em;
    z-index: 5;
    top: 120%;
    left: 50%;
    transform: translateX(-50%);
  }

  .tooltip-content::after {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    z-index: 5;
    border-style: solid;
    border-color: transparent transparent rgba(38, 38, 38, 0.9) transparent;
  }

  .btn-tag:hover .tooltip-content {
    visibility: visible;
    z-index: 5;
  }

这是父 block

.btn-tag {
    position: relative;
    border: 1px solid #333;
    border-radius: 4px 4px 4px 4px;
    color: #333;
    font-weight: 500;
    padding: 0.7em 0.4em;
    font-size: 1em;
    text-align: center;
    width: 100px;
    z-index: 1;
    cursor: pointer;
    background: red;
  }

问题是当我将鼠标悬停在 Block A 上时,工具提示被隐藏在 Block B 下,即使它的 z-index 值更高。

DEMO

我做错了什么,我该如何解决?

最佳答案

每个 z-index 声明都会建立一个本地堆栈上下文。因此,通过在 .btn-tag 上指定 z-index: 1,您将为后代 z-index 的每个按钮建立本地上下文(工具提示有更高的 z-index “在”父级的上下文中,第一个 btn-tag,但是第二个 btn-tag 有另一个具有相同 z-index 值的上下文,并且因为它在 DOM 之后出现在顶部)。

如果您要删除 .btn-tag 类上的 z-index 规则,使其默认保留,那么它将按照您的要求运行。

请找到演示:https://jsfiddle.net/y6udf6f8/

关于html - z-index 不适用于自定义嵌套工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43029187/

相关文章:

jquery - 动态居中工具提示一开始定位不正确

html - :hover acting funny 上的背景图像 (SVG) 更改

css - 除了验证错误 "ID is already defined"之外,如果我在一个页面上多次使用相同的 #id,我将面临什么实际问题?

html - 盒子没有正确对齐

c# - Visual Studio 2008 中的工具提示文档 - 信息不足

jquery - 我需要向 jQuery UI 工具提示添加预延迟,但似乎无法弄清楚

javascript - 将 HTML 选择值放入 JavaScript 表中

jquery - 调整大小时,div 的宽度恢复正常

html - CSS 显示 :inline does not work on <li> element

css - fatal error : UnCSS: could not open