如何让绝对的孩子落后于固定的父母?

时间:2016-10-03 16:30:02

标签: css css3

我有一个固定的标题,当点击一个按钮时会显示一个孩子。我把它作为悬停在jsfiddle上使其变得更简单,但是如果你这样做,你可以看到孩子在父母之上。我有什么办法可以让它显示出来吗?

另外,我需要父母有z-index Fiddle



#parent {
  width: 100%;
  height: 50px;
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9;
}
#child {
  width: 100%;
  height: 200px;
  background: #000;
  position: absolute;
  top: -200px;
  left: 0;
  z-index: -1;
  transition: 0.2s;
}
#parent:hover #child {
  top: 50px;
}

<div id="parent">Hover me
  <div id="child">
  </div>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

你需要在元素周围有一个包装器,这样你就可以使用z-index。请参阅下文或view this JSFiddle

&#13;
&#13;
#parent {
  width: 100%;
  height: 50px;
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
}

#child {
  width: 100%;
  height: 200px;
  background: #000;
  position: absolute;
  top: -200px;
  left: 0;
  z-index: -1;
  transition: 0.2s;
}

#parent:hover #child {
  top: 50px;
}

.wrapper {
  z-index:0;
  position:fixed;
  width:100%;
  top:0;
}
&#13;
<div class="wrapper">
  <div id="parent">Hover me
    <div id="child">
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我遇到过类似的问题,并通过更改一些HTML结构和CSS来解决。我希望它可以帮助你。

在此,我根据您的示例进行了一些更新

&#13;
&#13;
#parent {
  width: 100%;
  height: 50px;
  background: #f00;
  
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9;
}

#child {
  width: 100%;
  height: 200px;
  background: #000;
  
  position: absolute;
  top: -200px;
  left: 0;
  z-index: 8;
  
  transition: 0.2s;
}

#parent:hover ~ #child {
  top: 50px;
}
&#13;
<div id="parent">Hover me</div>
<div id="child"></div>
&#13;
&#13;
&#13;