2016-03-22 8 views
1

:after要素をホバリングすると問題が発生しましたが、表示されるべき部分は表示されません。ホバー・アフター・ホバー:after要素

HTMLのCODE:

<div class="top_line_dropdown"> 
     <span class="logged_in_user"> 
      [email protected] (Admin) 

      <div class="top_line_dropdown_content"> 
       aaaa 
      </div> 
     </span> 
    </div> 

CSS

.top_line_dropdown { 
    display: inline-block; 
    margin-left: 22px; 
} 
.top_line_dropdown .logged_in_user { 
    font-family: red; 
    font-size: 11px; 
    color: #999; 
} 
.top_line_dropdown .logged_in_user:after { 
    content: "\f078"; 
    font-family: FontAwesome; 
    font-weight: none; 
    font-size: 9px; 
    color: #999; 
    padding-left: 5px; 
} 
.top_line_dropdown .logged_in_user .top_line_dropdown_content { 
    display: none; 
    position: absolute; 
    background-color: #f9f9f9; 
    min-width: 160px; 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); 
    padding: 12px 16px; 
    z-index: 1; 
    right: 50px; 
} 
.top_line_dropdown .logged_in_user:hover:after .top_line_dropdown_content { 
    display: block; 
} 

私はを変更:の代わりを置く:ホバー:ショーアップ下のボックスの後。問題がどこにあるのか理解できませんでした。 :hover:afterがあなたのCSSによって作成された擬似的な要素であるが、それは子として.top_line_dropdown_content要素を持っていないので、それは単にあるJSFIDDLE

答えて

3

現在地実際の例を見ることができます。 :hoverを実行すると、要素がホバリングしているかどうかがチェックされ、要素の場合は、その子にスタイルが適用されます。私はあなたに例を挙げます。あなたが理解できるように、このコードに::after疑似要素を追加します。

<div class="top_line_dropdown"> 
    <span class="logged_in_user"> 
     [email protected] (Admin) 

     <div class="top_line_dropdown_content"> 
      aaaa 
     </div> 
     ::after 
    </span> 
</div> 

上記の例では、:: after要素は要素が配置される場所です。

+0

これを修正するにはどうすればよいですか? :D私はtop_line_dropdown_contentを&:の後ろに置きますか? – user2204367

+0

これを修正するには、右のセレクタを適用する必要があります。あなたが望むときにホバーセクションを表示させておきます。そして、あなたの:afterスタイルを正しい要素に適用する。あなたのアプリケーションでどのように見えるのかわからないので、正確な解決策を提示するのは難しいです。しかし、CSSのセレクタを見て、after:とbeforeのpseudo-elementについてチュートリアルをチェックして、それらがどのように動作するかを理解する必要があるようです。 –

+0

うーん...私は正直ではない。 – user2204367