html - Z-Index 问题,我没有解释

标签 html css z-index

我有 2 个元素,一个带有这个 css:

{
    background: #f5f5f5;
    -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.1);
    -moz-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.1);
    box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.1);
    position: fixed;
    top: 0;
    right: 0;
    left: 300px;
    height: 75px;
    z-index: 3;
}

还有一个使用这个 CSS 的:

{
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 1000;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.7);
    display: block;
}

1 号元素在 2 号元素之上。这怎么可能?我不知道该怎么办,如果我将元素 1 的 z-index 设置为 0,没关系,但是元素 1 会低于其他元素,这是不应该的。基本上,元素 1 是标题菜单,元素 2 是整个屏幕弹出窗口。

有人能帮忙吗?

最佳答案

在盒子模型中,z-index 是重叠二维对象的排序。从几何上讲,z-index 是与坐标 y 轴和 x 轴相交的垂直 z 轴。

堆叠顺序元素的可见性取决于它们的值。具有高值的元素具有高可见性优先级,因此它与盒模型中的其他元素重叠,具有较低优先级的元素将屈服。但是,这需要在文档对象模型 (DOM) 中定位元素。

DOM 只能渲染具有相对、绝对和固定位置属性的元素,而不是静态的。 它不需要将元素放置在顶部以获得更高的可见性,也不需要将元素放置在底部以获得较低的可见性。只要元素的 z-index order 值高,所有其他元素都会屈服。这意味着它将以高优先级显示在其他元素之上。例如,值为 1 的 z-index 的优先级高于值为 0 的 z-index。

如果 element-1 的 z-index 为 1,element-2 的 z-index 为 0,则 element-1 将具有更高的优先级,它将在顺序之上,element-2 将yield 因为它的优先级较低。

这是您问题的答案。你在问: “元素编号 1 在元素编号 2 之上。这怎么可能?”

如上所说。上面是什么,下面是什么并不重要。重要的是 z-index 优先级的值。

在您的情况下,您将 element-1 与 z-index: 3 放在上方,将 element-2 与 z-index: 1000 放在下方,认为 element-1 由于其 DOM 位置而具有高优先级。那是错误的。您必须了解 HTML Sementic 构建了 DOM,但 CSS 对其进行了样式设置或赋予了它新的外观和感觉。

对于 z-index,我们处理的是 CSS 而不是 HTML。在这里我们不构造元素,而是设置它们的样式。

对于上面的代码,具有 z-index: 1000 的元素 2 具有更高的优先级,并且无论其 DOM 位置如何,它都必须位于另一个之上。

关于html - Z-Index 问题,我没有解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55080055/

相关文章:

java - 使用 Java 在 MySQL 中存储图像

HTML anchor 元素和加载

html - 使用 "symbol"和 "use"方法对齐 svg 元素

HTML 选择样式

css - 划分表格的行

javascript - 如何在代码更改时重新加载 html 页面

jquery - 数据表:将搜索框定位到右上角

css - div 在所有带 z-index 的东西前面

css - 当 z-index 较高时,图像链接不适用于覆盖的 div

html - 显示全屏元素以外的元素(HTML5 全屏 API)