0

我有一个父母<div>和一个孩子<a>。父级的背景图像设置为 60% 的不透明度,但我希望子链接具有 100% 的不透明度。我以这种方式实现它的原因是我可以在悬停时将父级的不透明度淡化为 100%,从而消除对悬停图像的需要。

我知道孩子继承了父母的不透明性。我尝试了此处:after {}描述的技术,但即使设置了适当的值,子链接仍位于父元素下方且不可点击。z-index

我的问题是无法单击子链接,因为父级的:after伪元素位于子级之上。

我的代码如下:

<div>
  <a href="#">Load more</a>
</div>

div {
  position: relative;
  height: 300px;
} 
div:after {
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  background: url('../img/bg-load-more.png') repeat-x;
  width: 100%;
  height: 300px;
  z-index: 10;
  opacity: 0.4;
}
div a {
  display: block;
  z-index: 100;
}

有谁知道这个问题的解决方案,或者我必须创建一个图像精灵并在悬停时切换交换背景图像?

4

1 回答 1

1

问题是您没有对<a>自身应用位置(z-index 仅适用于positioned elements)包含 div 和伪元素,因此伪元素位于链接顶部,防止它被点击。

您需要做的就是给链接一个堆叠上下文,例如包括相对定位:

div a {
display: block;
position: relative;
z-index: 100;
}

例子

于 2013-05-02T19:22:57.953 回答