【发布时间】:2014-07-22 15:29:43
【问题描述】:
我遇到了一个奇怪的 CSS 问题。
下面是一个非常简单的代码示例,演示了问题。
<html>
<head>
<style>
.hover {
float: right;
}
.hover:hover {
background-color: blue;
}
.blocker {
opacity: 0.5;
}
</style>
</head>
<body>
<div class="hover">hover</div>
<div class="blocker">blocker</div>
</body>
</html>
我有一个 div A,浮动在另一个不透明度为 0.5 的 div B 上。我想在浮动 div 中添加一个 CSS 悬停规则。但由于某种原因,我不能。
我是向右还是向左浮动,都无所谓。
但是当我将不透明度更改为 1 时,悬停规则突然起作用了。
谁能解释这种行为?
我可以通过将拦截器 div 的内容包装在一个跨度中来“解决”问题,但感觉我不应该这样做。
这是一个 jsFiddle,演示了问题:http://jsfiddle.net/ed82z/1/
【问题讨论】:
-
下面的答案似乎都没有解释为什么将不透明度设置为 1 而不是 0.5。
-
这会给你一个线索:jsfiddle.net/abhitalks/ed82z/4
-
堆叠上下文:(see this) “堆叠上下文由文档中任何位置的任何元素组成,该元素是...不透明度值小于 1 的元素”
-
这个链接很有趣,但远不足以解释这里发生的事情,IMO。
-
@dystroy:是的。这就是为什么只是评论而不是尝试回答的原因。