2017-02-16 51 views
0

我尝试通过悬停其兄弟元素来操纵元素的同胞。我那样做:通过CSS的兄弟姐妹悬停不起作用 - 为什么?

.sw_2-technik + .sw_2-emotionen{ 
    background:green; 
} 

.sw_2-emotionen:hover ~ .sw_2-technik{ 
    background:orange; 
} 

尽管HTML的结构是有点儿像:

<section class="wrapper"> 
<div class="sw_2-technik"></div> 
<div class="sw_2-emotionen"></div> 
</section> 

虽然第一操作工作得很好,第二个(.sw_2-emotionen:悬停〜.sw_2 -technik)什么都不做。我在那里做错了什么?

谢谢!

+1

如果你想针对前一个同级的CSS,这里有一个清洁,简单的方法,你只能瞄准下的兄弟姐妹,而不是以前 – LGSon

+0

:http://stackoverflow.com/a/36118012/3597276 –

回答

2

兄弟姐妹选择器只影响元素,当第二个在页面上的第一个之后 - 而不是相反。

https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_selectors

的〜组合子分隔两个选择器和仅当它被第一先于第二元件相匹配,并且两个共享一个公共的父。

+0

不过不要”我有这种情况吗?两个兄弟姐妹都在同一个包装中(共同的父母),尽管我不确切知道“之前”是什么意思 - 第二个元素紧跟在第一个元素之后。 或者我在那里弄错了什么?谢谢! – Daiaiai

+0

@Daiaiai在'sw_2-technik'之前放了'sw_2-emotionen',你会看到的。 –

+0

@ uom-pgregorio但是我认为“+”特别用于这些突破,以便在这之后将元素定位到右侧?为什么我应该使用“〜” 因此,明确的答案是:没有JS,我所拥有的情况是不可行的? – Daiaiai