【问题标题】:Is it possible to cancel parent hover style when a child element is hovered?悬停子元素时是否可以取消父悬停样式?
【发布时间】:2014-03-27 05:49:12
【问题描述】:

父 div 和子 div 都定义了悬停样式,但我希望在子元素悬停时取消父悬停样式(仅使用 css)。

有可能吗?

【问题讨论】:

  • CSS 并没有真正为您提供“取消”效果的 API,但您可以订购选择器,以便为 .parent .child:hover 定义不同于 .parent:hover .child:hover 的样式。
  • 研究css特异性
  • 感谢两位炼金术士,但您提供的仅影响子元素。有问题的是父元素。这似乎是不可能的。我会在下面标记一个作为答案。

标签: css


【解决方案1】:

据我所知,顾名思义,级联样式表 (css) 仅允许根据祖先设置子属性。无法根据子元素选择元素。

简而言之:没有。

【讨论】:

【解决方案2】:

这是一种“欺骗”你想要的效果的方法。只是不能嵌套父子,但可以将它们分组在一个包含的 div 中。

JS Bin Sample

body{
  margin:0;
}
.parent{
  height:100px;
  width:100px;
  background-color:blue;
}
.child {
  height:50px;
  width:50px;
  background-color:red;
  position:absolute;
  top:25px;;
  left:25px;
}

.parent:hover {
  background-color:green;
}
.child:hover {
  background-color:yellow;
}

  <div>
<div class="parent">
   </div>
  <div class="child">

  </div>
  </div>

【讨论】:

  • 谢谢加里。我喜欢你所做的,但如果可能的话,我应该在不触及标记或 JavaScript 的情况下解决这个问题。不过似乎不可能。
  • 没问题...我所知道的不更改标记的唯一方法是使用 sass CSS sass-lang.com 您可以嵌套在 css 中。
猜你喜欢
  • 2013-01-08
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多