2016-01-05 14 views
5

<a>要素の中にイメージがない場合にのみ、リスト内のホバリングされたリンクにスタイルを適用したいと思います。私はこのCSSを試してみましたが、無駄にしているCSS:<a>の内側には適用されません<img>

div#leftcolumn ul a:hover{ 
    background-color: #F8F8F8; 
    color: Black; 
    border-bottom: 1px solid Black; 
} 

div#leftcolumn ul a:hover < img{ 
    background-color: #F8F8F8; 
    color: Black; 
    border-bottom: 1px solid Black; 
} 

ここjsfiddleです

<div id="leftcolumn"> 
    <ul> 
    <li><a href="http://google.com">google</a></li> 
    <li><a href="http://google.com"><img src="http://cso.cz/wpimages/cz2.gif"></a></li> 
    </ul> 
</div> 

と私のCSS:

マークアップは、このようなものです

+0

あなたはこのHTMLを余儀なくされていますか?そうでない場合は、テキストを ''にラップし、そこでルールを適用することができます。 –

+0

'a:not(a img):ホバー{...}'を試しましたか? - 未テスト –

+1

@DarrenSweeney疑似セレクタ:not()は複雑なセレクタを受け付けません。 –

答えて

2

:あなたはCSSでそれの子に基づいて要素のスタイルを設定することはできません、何を行うことができますことは、画像を保持し、それをスタイリング防ぐ<a>タグのための特別なクラスを割り当てるです。

しかし、あなたは<span>でテキストを折り返すことができ、唯一そこにルールを適用、すなわち何かのように:

<div id="leftcolumn"> 
    <ul> 
    <li><a href="http://google.com"><span>google</span></a></li> 
    <li><a href="http://google.com"><img src="http://cso.cz/wpimages/cz2.gif"></a></li> 
    </ul> 
</div> 

CSS:

div#leftcolumn ul a:hover > span { 
    background-color: #F8F8F8; 
    color: Black; 
    border-bottom: 1px solid Black; 
} 

Updated JSFiddle

+0

これは良いですが、もしスパンホーがなければ、それを働かせることができますか? –

+0

それは不可能です。 –

4

私は、これは純粋なCSSで可能である疑い

<div id="leftcolumn"> 
     <ul> 
     <li><a href="http://google.com">google</a></li> 
     <li><a href="http://google.com" class="withImage"><img src="http://cso.cz/wpimages/cz2.gif"></a></li> 
     </ul> 
</div> 

div#leftcolumn ul a:not(.withImage):hover{ 
    background-color: #F8F8F8; 
    color: Black; 
    border-bottom: 1px solid Black; 
    border-top: 1px solid black; 
} 
+0

アンカーにクラスを配置する場合は、イメージとターゲットではなくテキストでターゲットを設定するだけでいいのですが、 – Pete

+0

どちらもうまくいきます。 – KAD

0

.non-IMGを追加 to li imgなし nを使用してください。.non- IMG

div#leftcolumn ul li.non-img a:hover{ 
 
    background-color: #F8F8F8; 
 
    color: Black; 
 
    border-bottom: 1px solid Black; 
 
    border-top: 1px solid black; 
 
}
<div id="leftcolumn"> 
 
     <ul> 
 
     <li class="non-img"><a href="http://google.com">google</a></li> 
 
     <li><a href="http://google.com"><img src="http://cso.cz/wpimages/cz2.gif"></a></li> 
 
     </ul> 
 
</div>

関連する問題