2017-06-13 99 views
-1

这个问题的目的是考察行为的可能性是这样的:是:之前:兄弟姐妹之后?

.element:before { 
 
    content: 'before'; 
 
    color: orange; 
 
} 
 

 
.element:after { 
 
    content: 'after'; 
 
    color: green; 
 
} 
 

 
.element:after:hover + .element:before { 
 
    color: red; 
 
}
<div class='element'>&nbsp;</div>

回答

4

伪元素不能被兄弟组合程序,因为sibling combinators only represent element siblings,不伪元素的兄弟姐妹的目标。

因此,虽然由::before::after生成的框在布局方面是彼此的兄弟姐妹,但为了兄弟姐妹组合的目的,它们不是。

当它的::after伪元素被徘徊时,不可能为元素的::before伪元素编写选择器。 (就此而言,::after:hover在选择器4之外无效,并且不存在实现。)有hacks可以使用诸如pointer-events之类的东西,但没有任何东西可以保证适用于所有浏览器。