2014-03-26 56 views
1

父级和子级div都定义了悬停样式,但我希望在子元素悬停时取消父级悬停样式(仅使用css)。当子元素被徘徊时,是否可以取消父级悬停样式?

可能吗?

+0

CSS并没有真正给你一个API为“取消”的影响,但你可能为了你的选择让你有'.parent .child定义的风格:hover'是不同从'.parent:hover .child:hover'。 –

+0

研究css特异性 – fnostro

+0

Dup of http://stackoverflow.com/questions/21712198/hover-only-on-parent – bjb568

回答

3

据我所知,顾名思义,级联样式表(css)只允许根据祖先设置子属性。根据孩子选择元素是不可能的。

简而言之:

+1

实际上有一个计划,使CSS4使用主题成为可能:http://dev.w3.org/csswg/selectors4/#subject – Godwin

+0

悲伤,但似乎是正确的。 –

0

这里是一个“骗”为你想要的效果的一种方式。只是不能嵌套的父母和孩子,但他们可以分组在一个包含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> 
+0

谢谢加里。我喜欢你所做的,但我应该解决这个问题,如果可能的话,不要触及标记或JavaScript。似乎不可能。 –

+0

没问题...做到这一点,我知道没有改变标记的唯一方法是使用sass CSS http://sass-lang.com/你可以在css中嵌套。 –

相关问题