【问题标题】:Active state pseudo class and Adjacent element selector combined on IEIE上结合的活动状态伪类和相邻元素选择器
【发布时间】:2014-09-19 16:40:29
【问题描述】:

我目前在 IE 上遇到了这个问题 - http://jsbin.com/riyaxewo/4

HTML

<div class="a">
  1
</div>
<div class="b">
  2
</div>

CSS

.a, .b {
  height: 50px;
  width: 50px;
  padding: 10px 10px;
  border: 1px solid;
  text-align: center;
}
.a:active, .b:active {
  background-color: red;
}
.a:hover + .b {
  background-color: transparent;
}
.a:active + .b {
  background-color: yellow;
}

预期的结果是,只要按下框 #1,框 #2 就会变成黄色,但是,在 IE 上这个 效果只发生一次,以后就不会再发生了。

我在 CSS 中而不是以编程方式执行此操作的原因是因为我希望只要在元素上按下鼠标就可以产生效果,即使在其他地方释放了鼠标按钮(这意味着我不能依赖mouseup,而mouseleave/mouseout 不会得到我想要的结果)

【问题讨论】:

标签: javascript html css internet-explorer css-selectors


【解决方案1】:

希望这会有所帮助:https://stackoverflow.com/a/17211251/3884420

显然它是 IE 中的一个错误,对于活动元素的子元素和类似的东西也是如此。您可以尝试在 mousedown 和 mouseup 触发器上使用的 js 脚本。我知道你说过你不能。

在测试您的问题时还发生了更有趣的事情。如果您尝试在活动时离开鼠标,它每次都有效。我删除了您添加的悬停属性,甚至这停止了工作。我猜每次您的鼠标离开并且悬停效果停止时,活动效果都会再次触发。

【讨论】:

  • 谢谢!实际上我确实设法使用 jquery 解决了这个问题我已经用解决方案更新了问题
猜你喜欢
  • 2011-08-05
  • 2012-02-15
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2013-04-24
  • 2015-09-28
  • 1970-01-01
  • 2012-03-08
相关资源
最近更新 更多