Html 将子元素放置在z索引大于它的元素之上';父母
正如标题所说,我试图将一个元素放置在z索引大于其父元素的元素之上 例如,我有以下HTML: HTML: 如图所示,红线(Html 将子元素放置在z索引大于它的元素之上';父母,html,css,Html,Css,正如标题所说,我试图将一个元素放置在z索引大于其父元素的元素之上 例如,我有以下HTML: HTML: 如图所示,红线(.info)实际上应该是一个较大的矩形,但你看不到它的原因是因为它隐藏在灰色的.box后面 如何更改z索引的位置,使红色框显示在灰色框的上方,而蓝色的.line保持在灰色框的后面?如果将.line的z索引放置在.box的上方,这将导致红色框显示在灰色框的上方: .box{ z-index: 1 } .line { z-index: 2 } 这应该可以解决问题
.info
)实际上应该是一个较大的矩形,但你看不到它的原因是因为它隐藏在灰色的.box
后面
如何更改z索引的位置,使红色框显示在灰色框的上方,而蓝色的
.line
保持在灰色框的后面?如果将.line的z索引放置在.box的上方,这将导致红色框显示在灰色框的上方:
.box{
z-index: 1
}
.line {
z-index: 2
}
这应该可以解决问题
编辑:
将.info div移到.line之外,例如
HTML:
发件人:
还要注意的是,嵌套起着很大的作用。如果元素B位于元素A的顶部,则元素A的子元素永远不能高于元素B
这正是你想要做的。如果希望.line
位于.box
后面,则它的子.info
永远不会出现在.box
的顶部,因为它的父对象本身就在它后面
为了实现您想要的,您应该更改HTML
结构,使.info
位于.line
之外
例如:
.box{
位置:相对位置;
z指数:1;
宽度:500px;
高度:40px;
背景:灰色;
}
.box.info{
宽度:50px;
高度:25px;
背景:红色;
}
.线路{
位置:相对位置;
顶部:45px;
宽度:500px;
高度:50px;
背景:蓝色;
}
.line
需要在.box
后面。好的,问题是html代码的结构,因为redbox(.info)位于.line元素内部,它有一个相对于此容器的z索引。因此,您需要做的是将.info移到.line元素之外,这样它将与.box元素处于同一级别,并且能够与其他元素相比具有z索引。.line
需要位于.box
后面。使用当前标记,我认为不可能同时使用z索引将.line放在.box后面和.info放在.box前面,因为.info是.line的子项,为此,请在当前标记之外设置.info并将其放在.box后面,然后应用比.box更低的z索引。
body {
margin: 50px;
}
.box {
background: grey;
width: 500px;
height: 40px;
z-index: 10;
position: relative;
}
.line {
background: blue;
width: 500px;
height: 5px;
z-index: 9;
position: relative;
top: 0;
overflow: visible;
}
.line .info {
width: 50px;
height: 25px;
background: red;
}
.box{
z-index: 1
}
.line {
z-index: 2
}
<div class="line"></div>
<div class="info"></div>
<div class="box"></div>
.box {
z-index:10;
}
.line {
z-index:9;
}
.box {
z-index:11;
}