html - 为什么 z-index 在这种情况下不适用

标签 html css

我有两个元素,一个用于header,另一个用于navbar
我想应用 z-index 属性使 header 位于顶部,然后是 navbar 位于底部。

HTML

<div id="main">
    <div id="header"><h2 id="logo">Logo</h2></div>
    <div id="navBar"><span>x</span></div>
</div>

CSS

div#header {
    height:70px;
    background-color:#fff;
    border-bottom:1px solid rgba(0, 0, 0, 0);
    box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 1px 0 0 rgba(0, 0, 0, 0.1);
    z-index:20;
}
div#navBar {
    height:50px;
    padding-right:240px;
    line-height:45px;
    background:yellow;
    z-index:21;
}
div#header #logo {
    position:relative;
    right:-20px;
    bottom:-20px;
}

您还可以看到 demo on jsfiddle

为什么会出现这个问题?
以及如何解决?

最佳答案

要使 z-index 起作用,您需要在这些元素上设置position:absolute、相对等。

关于html - 为什么 z-index 在这种情况下不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23644285/

相关文章:

css - 如何制作可拉伸(stretch)以适应包裹元素的 flexbox 容器?

html - 图片没有完全响应

html - Amp-sidebar : Does it absolutely have to be the child of the body? 为什么?

javascript - 使用 JSBarcode 库无法正确打印条码

javascript - 如何从 HTML 集合中提取名称?

html - 防止 flex 元素溢出 flex 容器

css - 页脚内容重叠包装 div

javascript - Nodemailer Node Express POST 问题 Github 页面 Gmail

python - 使用 bs4 和 Python 从 html 表格中提取数据

html - 如何让 flex 元素扩展到每行最多 4 个元素的可用宽度?