我应该了解有关 z-index 的任何奇怪规则吗?

2024-03-01

抱歉,我无法发布完整的代码,我正在研究专有的东西。基本上,我遇到一个问题,即 z 索引为 6 的 DIV 被 z 索引为 5 的覆盖 DIV 阻塞。是否有任何情况会导致这种情况发生?我正在绞尽脑汁试图找出为什么会发生这种情况。这根本没有任何意义。与嵌套 DIV 或 CSS 有关的任何内容position maybe?

对于我的含糊之处,我深表歉意。我尝试在 JSFiddle 中重新创建,但不幸的是它按预期工作。只有实际的代码是不稳定的。

结构:

<div id="window">
    <div id="wall">
        <div class="box" /><div class="box" /> .... many boxes
    </div>
</div>
<div id="overlay" />

CSS:

#window {
    position: relative;
    width: 960px;
    height: 700px;
    overflow: hidden;
    background: #666;
}

#wall {
    position: relative;
    width: 1640px;
    height: 1600px;
    -webkit-perspective: 2000;
}

#overlay {
    position: absolute;
    z-index: 5;
    background: #000;
}

.box {
    left: 0px;
    top: 0px;
    position: absolute;
    width: 228px;
    height: 228px;
    color: #fff;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: bold;
    font-size: 0.8em;
    -webkit-transform-style: preserve-3d;
    z-index: 4;
    cursor: pointer;
}

覆盖尺寸是通过 jQuery 在特定事件上设置的:

        $('<div id="overlay"></div>').css({
            'left': $('#window').position().left + 'px',
            'top': $('#window').position().top + 'px',
            'width': $('#window').width() + 'px',
            'height': $('#window').height() + 'px',
            'opacity': 0.8
        }).appendTo('body');

即使其中一个框的 z 索引为 6,并且覆盖层为 5,覆盖层仍然位于该框上方。

覆盖层应该覆盖窗口,但让其中一个盒子穿过。

为什么这个 JSFiddle 可以工作,但我的实际代码却不能?!http://jsfiddle.net/csaltyj/2gzTc/ http://jsfiddle.net/csaltyj/2gzTc/


z-index只适用于元素position: relative,absolute, or fixed。这似乎让很多人绊倒。

此外,孩子永远不能低于其父母。这个例子 http://dabblet.com/gist/2048472,也于Jsfiddle http://jsfiddle.net/Du8Qf/说明了这一点。

根据您添加的示例,很明显您遇到的问题:

z-index仅相对于其父级,在大多数情况下是文档本身。如果z-index一个兄弟姐妹的地位低于另一个兄弟姐妹,你对第一个兄弟姐妹的孩子所做的任何改变都不能将其移动到其父母兄弟姐妹之上。阅读更多关于如果你有兴趣的话。

这是一个视觉效果:

用红色划掉的是你想要做的事情,而 CSS 是不可能的(考虑到那些小盒子是大盒子的子元素,其标记可能如下所示:

<div class="one">
</div>
<div class="two">
     <div> I can never be above "one", if my parent "two" isn't. </div>
</div>

解决方案是将“覆盖层”移动到墙内,或者更好地使用伪元素(它被渲染为它所应用到的元素的子元素),因为覆盖层听起来像是一些演示性的东西,因此应该保留在 CSS 领域,如果覆盖 div 不会添加任何语义含义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该了解有关 z-index 的任何奇怪规则吗? 的相关文章

  • 如何将文本环绕在非矩形图像周围?

    是否可以将文本环绕在非矩形图像周围 我希望不同国家的地图周围的文本环绕该国家 地区的形状 即使边界本身不是直的 文本也始终与该国家 地区的边界保持相同的距离 这可能吗 您可以使用这个方法 http torylawson com index
  • 如何正确使用 z-index?

    请在此处查看此页面 http www blakearchive org blake public exhibits canterburySpecial html http www blakearchive org blake public
  • CSS3 与 JavaScript

    所以我试图在网页上创建一个动画 并试图找到一种使用 CSS3 来实现它的方法 但我对如何做到这一点感到非常困惑 我需要发生的是 当用户单击链接元素时 我希望 div 展开并填充特定于所单击的链接元素的内容 例如 当用户单击标题为 About
  • 如何在iOS中获得旋转UIView的完美X,Y位置

    我正在使用 CABasicanimation 来旋转 UIView 我正在使用这段代码 CABasicAnimation rotationAnimation CABasicAnimation animationWithKeyPath tra
  • iPhone 4 上不稳定的 CSS3 动画

    我有一个非常简单的 或者至少我认为是 动画 我所做的只是 webkit background size 的动画 bubble position relative width 397px height 326px background url
  • Zurb 基金会粘性页脚

    我想使用 Foundation 4 拥有粘性页脚 并且我想使用 HTML5
  • HTML CSS 循环协助

    希望你能帮忙 我想知道您是否可以在循环中创建以下类型 你知道这是否可能吗 body background 000 DEMO SPECIFIC STYLES typewriter h1 color fff font family Bebas
  • 等高列并将最后一项与底部对齐

    我有一个列表 其中每个li有嵌套容器 我尝试为所有列表项保留相同的高度 并将最后一个 div 推到底部 我将如何使用 flex 来做到这一点 ul list container display inline flex justify con
  • Firefox -moz-border-radius 不会裁剪图像?

    如果设置了图像的边框半径 有谁知道如何让 Firefox 裁剪角 它包含的元素可以正常工作 但我会发现丑陋的角落伸出来 有什么方法可以解决此问题 而无需将图像设置为背景图像或在将其放在网站上之前对其进行处理吗 解决方法 将图像设置为容器元素
  • 单击后按键不会删除过渡

    我认为问题可能出在const 音频 document querySelector audio data key e keyCode const key document querySelector key data key e keyCod
  • 如何获取 Google Chrome 中所有加载的 CSS 类的列表?

    有时我需要打印 CSS 类列表才能找到合适的类 最适合我的是 JS 控制台中的函数 当您键入时 JS 类列表会被加载和过滤 例如 如果我需要记住一个图像类 我输入 Img 然后加载图像类列表 ImgFolder ImgPencil var
  • Sass mixin 将背景透明度恢复到 IE8

    我是 Sass 新手 并为此苦苦挣扎 我无法在两者中渲染颜色hex 对于 IE 和rgba 每一个小片段都让我感到沮丧 因为我还没有掌握语法 而且 Sass 的 Google 结果仍然很少 这是混合 mixin transparent he
  • 如何使用CSS缩进多级select optgroup?

    只是试图通过嵌套深度缩进 optgroup 块 我尝试了一般margin left规则 嵌套元素然后尝试应用相同的规则 尝试过padding left 这样的缩进可能吗 看起来很简单 P 在下面的示例中 标记为 client2 a 的 op
  • 在问题内显示内联块文本

    我一直在尝试显示内联块 如果我没有在 div 中添加任何内容 一切都会很好 但是当我这样做时 div 会折叠起来 我不知道确切的原因 任何想法 https jsfiddle net giancorzo ebqoptbd https jsfi
  • 如何让 jstree 节点显示长的、可能是多行的内容?

    当使用jsTree插件 http www jstree com 我需要有一个显示其完整内容的节点 目前 每个节点仅显示大约一行文本 如何让 jsTree 中的节点显示节点中的所有文本而不截断节点的内容 下面的 CSS 代码就可以解决这个问题
  • CSS 边框样式 INSET 或 GROOVE 看起来与 IE9 FF4 或 Safari5 或 Chrome2 非常不同

    抱歉 我是个白痴 但是当我尝试获得某种凹槽效果或插入效果作为边框样式时 我从不同的浏览器中得到了一些非常非常大的视觉结果 使用时 border 5px groove A00 or border 5px inset A00 Firefox 3
  • Chrome 版 Firebug Lite 会破坏悬停效果和鼠标悬停事件

    我有一个奇怪的问题 使用时适用于 Chrome 的 Firebug Lite https chrome google com webstore detail firebug lite for google c bmagokdooijbeeh
  • 全高全宽 CSS 布局

    我正在寻找一种方法来创建具有 5 个区域的纯 CSS 无 JavaScript 布局 如下所示 H A B C F
  • 为什么我的 Web 组件 CSS 不显示?我没有使用shadowDOM

    我有一个没有使用 ShadowDOM 的 Native V1 组件 所以我将 CSS 放在 但是当其他人使用我的组件时 我的 CSS 就不再起作用了 仅当其组件确实使用 ShadowDOM 时才会发生这种情况 我的组件的示例代码 class
  • 选择子元素但不选择孙元素

    我有以下简化的代码 div p text p div div p text p div div p text p div div p text p div 每当我设置一些值时 content pCSS 文件中的元素 更改也适用于 col1

随机推荐

  • 如何在 TypeScript 中创建类似枚举的类型?

    我正在为 TypeScript 的 Google 地图 API 编写定义文件 我需要定义一个类似枚举的类型 例如 google maps Animation其中包含两个属性 BOUNCE and DROP 在 TypeScript 中应该如
  • 解析错误:语法错误,php 中出现意外的 T_STRING

    我收到错误
  • 放大“无法验证客户端的秘密哈希”

    我们一直在使用 Amplify 和 Cognito 为部署到 Lambda 的 Angular6 应用程序注册用户 客户希望从电子邮件过渡到用户名作为主要用户标识 所以我们创建了一个新的用户池 客户端 我看不到配置设置 我只是获得了新的用户
  • 如何使用java读取Json中的所有键而不指定键名

    尝试读取 Json 消息 如下所示 employees firstName John lastName Doe firstName Anna lastName Smith firstName Peter lastName Jones 我想读
  • 转换 Observable 中的数据

    我正在从我的 Angular 服务上的 Observable 中检索项目列表 在每个项目中 我都有一个包含主题列表的数组 对于每个主题 我都需要再次调用以获取其详细信息 例如名称 描述等 数据结构 post1 subjects books
  • C 是否有通用的“指向指针的指针”类型?

    例如 如果我想编写一个将指针清空的 free 我可以编写如下内容 void myfree void data free data data NULL 但是 当我尝试编写此内容时 我收到编译器警告 来自 gcc 4 6 2 warning p
  • 同步引用完整性表和枚举

    我经常思考这个问题 所以想请教一下大家 假设我有一个如下所示的数据库表 Table Visibility Id Value 0 Visible 1 Invisible 2 Collapsed 这只是一个用于确保引用完整性的表 它基本上是存储
  • 检查其他用户是否有写入文件的权限

    在安装过程中 我需要检查用户提供的路径是否对指定用户可写 执行Setup exe 仅适用于Windows的软件 的用户可能无法写入路径 像 fileserver share这样的UNC路径 所以我认为如何检查写入目录或文件的权限 https
  • 如何根据RSA的公开指数和模生成DER/PEM证书?

    众所周知 公钥由公共指数和模数组成 我的问题是 如何根据RSA的公开指数和模生成DER PEM证书 预先非常感谢您 有了公共指数和模数 您最希望得到的结果是 BEGIN PUBLIC KEY MIGGAoGAfHlcdrcuOK6C02rb
  • NSDictionaryController 似乎没有观察到内容字典的更改

    我一定错过了一些简单的东西 但是我在将 tableView 绑定到 NSDictionaryController 时遇到了一些麻烦 这是我当前方案的模型 TableViewColumn bindsTo gt DictionaryContro
  • cURL 到 C# web 请求

    我正在尝试将 cURL 脚本转换为 C 脚本 如果我想发布图像 是否必须将其转换为字符串 当我尝试运行脚本时 我从目标计算机收到异常 不幸的是 我无权查看目标机器上的代码 ch curl init curl setopt ch CURLOP
  • 在android fb graph api中获取空响应

    我一直在尝试使用fb graph api但是reponse我得到的是null当我尝试在我的 Android 应用程序中获取页面的帖子时 我正在尝试从我使用过的 ID 页面获取页面提要 我希望得到包含提要的图形响应 但我有一个null res
  • matplotlib 中 Poly3DCollection 图的透明度

    我正在尝试使用 Python 的神奇 Matplotlib 包绘制一些对象 这些对象由实现的点组成plt scatter 和补丁实现Poly3DCollection 我希望补丁具有轻微的透明度 以便可以看到补丁后面的点和边缘 这是我已经生成
  • Spring 3 MVC Controller集成测试-将Principal注入到方法中

    作为 Spring 3 MVC 的一部分 可以将当前登录的用户 原理 对象注入到控制器方法中 E g Controller public class MyController RequestMapping value update meth
  • Linux、waitpid、WNOHANG、子进程、僵尸

    我作为守护进程运行我的程序 父进程只等待子进程 当子进程意外死亡时 再次fork并等待 for 1 if fork 0 break int sig 0 for 1 usleep 10000 pid t wpid waitpid g gt p
  • 如何在自定义 XML 序列化方法中使用默认 XML 序列化

    我在 NET 中有一个实现 IXmlSerialized 的类 我想序列化它的属性 但它们可能是复杂的类型 这些复杂类型与 XML 序列化兼容 但它们本身不实现 IXmlSerialized 从我的 ReadXml 和 WriteXml 方
  • Java 小程序未在 Java8/HTTPS 上加载

    我有 Java 小程序 使用 HTTPS 时不会运行 在本地主机上测试时一切正常 此外 使用仅使用 HTTP 的测试服务器一切正常 在服务器仅使用 HTTPS 的生产模式下 会出现此问题 引起我注意的一件事是 http www exampl
  • 具有两个系列的 R ggplot:带有图例的点和误差条

    如果我有一个像这样的数据框 obs lt rnorm 20 d lt data frame year 2000 2019 obs obs pred obs rnorm 20 1 d pup lt d pred 5 d plow lt d p
  • 在 F# 中使用关键字作为标识符

    在 C 中 我可以执行以下操作 int private 15 在 VB NET 中 我可以执行以下操作 Dim Private As Integer 15 我想知道 F 中是否有办法使用保留关键字作为标识符 就像 VB NET 和 C 中那
  • 我应该了解有关 z-index 的任何奇怪规则吗?

    抱歉 我无法发布完整的代码 我正在研究专有的东西 基本上 我遇到一个问题 即 z 索引为 6 的 DIV 被 z 索引为 5 的覆盖 DIV 阻塞 是否有任何情况会导致这种情况发生 我正在绞尽脑汁试图找出为什么会发生这种情况 这根本没有任何