2017-02-19 9 views
0

それはそうではありませんか?a:after要素に他の要素をホバリングすることで影響を与えることはできませんか?

は基本的に、私が持っている:私は "リンク" の上に置くと

.arrow:after { 
 
    border-color: rgba(241, 241, 241, 0); 
 
    border-bottom-color: #FFF; 
 
    border-width: 8px; 
 
    margin-left: -8px; 
 
} 
 

 
a.test:hover > .arrow:after { 
 
    border-bottom-color: red !important; 
 
}
<a href="#" class="test">Link</a>

は、.arrow:afterは変更する必要がありますが、それはしません。どんな解決策ですか?影響を受ける要素が

  • 将来の兄弟要素の

の子が推移し、今後の兄弟

  • ある場合

  • +3

    あなたのhtmlには「矢」のクラスがありません。何か不足していますか? –

    +0

    あなたは常にcontent: "":after /:before pseudoelementsを使うべきです。 –

    +0

    '.arrow'要素はおそらく' .test'の直接の子ではありません。それが兄弟の場合は、コンビネータ '〜'を使うべきです。これは、 'a.test:hover〜.arrow :: after'です。また、擬似要素は、空の場合でも 'content'を定義する必要があります。 – pol

    答えて

    0

    それは、可能です。

    例(未来兄弟):

    .arrow:after { 
     
        border-color: rgba(241, 241, 241, 0); 
     
        border-bottom-color: #FFF; 
     
        border-style: solid; 
     
        border-width: 8px; 
     
        margin-left: -8px; 
     
        content: ''; 
     
    } 
     
    
     
    .test:hover ~ .arrow:after { 
     
        border-bottom-color: red; 
     
    }
    <span class="test">Test</span> 
     
    <hr /> 
     
    <a href="#" class="arrow">Arrow</a>

    あなたはDOM内での位置を完全に自由をしたい場合は、javascript見ています。

    関連する問題