Html 为什么显示表格单元格的嵌套元素显示在较高的外部元素上?
我有一个嵌套在Html 为什么显示表格单元格的嵌套元素显示在较高的外部元素上?,html,css,Html,Css,我有一个嵌套在z-index:0元素中的元素,它位于z-index:1元素下面。父元素*正确地**显示在另一个元素下。但是,当我使子元素显示时:table cell;z-index:2它从父元素(在垂直z轴上)跳出,位于更高的外部元素上方!为什么会发生这种情况?我如何阻止它 示例: 父项为显示的示例:表,同一问题: HTML: 这与元素具有表格单元格的显示这一事实完全无关 这是因为.container元素实际上不是。尽管.container元素是相对定位的,但它仍然有一个默认的z-index,即
z-index:0
元素中的元素,它位于z-index:1
元素下面。父元素*正确地**显示在另一个元素下。但是,当我使子元素显示时:table cell;z-index:2
它从父元素(在垂直z轴上)跳出,位于更高的外部元素上方!为什么会发生这种情况?我如何阻止它
示例:父项为显示的示例:表,同一问题: HTML:
这与元素具有
表格单元格的显示
这一事实完全无关
这是因为.container
元素实际上不是。尽管.container
元素是相对定位的,但它仍然有一个默认的z-index
,即auto
,而不是0
如果要建立堆叠上下文,并防止子元素出现在上一个同级之上,请添加z-index:0
。否则,.tc
将继续出现在上方。悬停
,因为2
的z指数明显高于1
还需要注意的是,display:table cell代码>与此处的堆叠无关。删除它并保留z-index
属性的工作原理是一样的:。与您相比,这就是问题所在!我忘了给容器一个z索引。
<div class="hover">
HOVER IN HERE
</div>
<div class="container">
<div class="tc">
This should be under
</div>
</div>
.hover
{
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100px;
background-color: #e8e8e8;
z-index: 1;
}
.container
{
position: relative;
top: 0px;
left: 0px;
width: 100px;
height: 100px;
background-color: red;
}
.tc
{
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 50px;
background-color: blue;
display: table-cell;
z-index: 2;
}
.container {
position: relative;
z-index: 0;
/* .. */
}