html - 为什么 z-index 不起作用?

标签 html css

我有这个 HTML 代码:

<div id="logo">
    <div id="left-block">
        <h1>Title goes here</h1>
    </div>
</div>
<div id="right-block">
    <ul>
        <li>Menu1</li>
        <li>Menu2</li>
        <li>Menu3</li>
        <li>Menu4</li>
    </ul>
</div>

它使用以下 CSS 代码在左上角显示标题,在右上角显示元素菜单:

#logo {
    position: absolute;
    z-index: 1;
}

#left-block {
    background-color: red;
    height: 50px;
}

#right-block {
    float: right;
    background-color: blue;
    height: 50px;
    z-index: 5;
}

ul {
    float: right;
    list-style: none;
}

li {
    display: inline;
    margin: 0 5px 0 0px;
}

问题是当我有一个很长的标题时,如 Fiddle example 中所示.标题与菜单重叠,z-index 似乎不起作用(我在所有地方都放置了 z-index 但没有成功)。为什么 z-index 不起作用?是因为#logo 是绝对定位的吗?如何解决这个问题?

注意:我无法更改此设置 (#logo {position:absolute}),因为此简化演示中未显示的其他元素需要它。

最佳答案

只需手动设置 #right-block位置:

#right-block {
    position: relative;
    float: right;
    background-color: blue;
    height: 50px;
    z-index: 5;
}

z-index 仅适用于 absolute|relative|fixed定位元素,默认值为 positionstatic .

关于html - 为什么 z-index 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14832741/

相关文章:

html - 页脚 Div 位置错误

html - 是CSS :target selector supported in IE9 in spite of w3schools saying it's not?

javascript - 如何使用 Javascript 填充输入文本字段

css - 停止 div 使用 css 调整父 div 的大小

javascript - SVG动画——旋转和变换问题

css - 当一个部分未知时,为什么 CSS 逗号分隔选择器会破坏整个规则?

html - 带有文本下方复选框的自定义复选框

javascript - 将 &lt;input type ="time"> 值(作为持续时间)转换为 JS/PHP 小时 float

html - 如何判断给 img 一个固定的、始终可见的位置、填满屏幕并且没有溢出? (没有背景元素))

html - 2种不同的背景颜色?