使用不透明度的CSS过渡淡出效果不起作用

时间:2014-04-06 16:45:26

标签: html css css3

我正在尝试使用div来悬停图像淡出(因此你只能看到背后的灰色背景)并且一些文本淡入。我一直在尝试使用CSS过渡来做这个,但是不透明度不会似乎改变了(即我仍然可以看到背景图像)。

HTML:

<div id='options'>
  <div class='option'>
    <div class='back-option'>
    </div>
    <div class='front-option'>
      Add post
    </div>
  </div>
</div>

CSS:

#options {
  font-family: 'Segoe UI', 'Arial', sans-serif;
}

.option {
  position: relative;
  width: 6.25em;
  height: 6.25em;
  border-radius: 5px;
  cursor: pointer;
  background-color: #363636;
}

.back-option {
  position: absolute;
  width: 6.25em;
  height: 6.25em;
  border-radius: 5px;
  background-image: url(http://png-5.findicons.com/files/icons/2672/pixel_ui/16/add.png);
  background-size: contain;
  -webkit-box-shadow: inset 0px 0px 0px 2px rgba(0,0,0,0.75);
  -moz-box-shadow: inset 0px 0px 0px 2px rgba(0,0,0,0.75);
  box-shadow: inset 0px 0px 0px 2px rgba(0,0,0,0.75);
  opacity: 1;
  transition: opacity 0.5s;
}
.back-option:hover {
  opacity: 0;
}

.front-option {
  position: absolute;
  width: 6.25em;
  height: 6.25em;
  border-radius: 5px;
  color: #FFFFFF;
  font-weight: bold;
  text-align: center;
  line-height: 6.25em;
  opacity: 0;
  transition: opacity 0.5s;
}
.front-option:hover {
  opacity: 1;
}

这是JSBin of it

2 个答案:

答案 0 :(得分:1)

由于div位于顶部,因此悬停不会触发。我只是修改了css来检测其父节点上的悬停。

.option:hover .back-option {
  opacity: 0;
}

实例:http://jsbin.com/cucadami/4/edit

答案 1 :(得分:0)

.back-option没有事件鼠标悬停,导致另一个元素超过它。 做

#options:hover .back-option {
  opacity: 0;
}

它会起作用。

你也可以background-color.front-option,站在最前面,然后删除.back-option

的悬停规则