CSSのテキストリンクを、ボーダー上でホバーの にターゲティングすることはできますが、ホバー上のボーダー。だから、:CSS-ターゲットテキストのリンクは、ホバー上の下のボーダーとリンクしますが、ボーダーのない画像リンク
<a href="#"><img src="image.png" /></a> ==> this should not have a bottom-border on hover
<a href="#">regular text link</a> ==> this should have a bottom-border on hover
私はこのCSSを試してみました:
#sidebar a:hover {
border-bottom: 1px dotted red;
}
#sidebar a:hover img {
border-bottom: none;
}
しかし、これは動作しません...アンカーではなく、画像よりも標的にする必要があり、私は思います。私はGoogleの周りで狩りをしてきましたが、特定のクラスやIDで画像リンクをターゲティングしたり、display:blockを使用したりする以外は、どのようにしてこの操作を行うのかわからないようです。
しかし、これらのソリューションはコンテンツがCMSにあるため使用できないため、ユーザーが挿入する各イメージにクラスを割り当てる必要はありません。表示:ブロックが機能しない理由は、ユーザーが表示したいすべての画像に適しているかどうかわかりません。
最後に、私はプレーンなCSS(Javascriptなし)でこれを行うことができるようにしたいと思います。おそらく方法はありません...しかし、あなたが持っているどんな助けやアイデアも非常に高く評価されます!
私はいつもこれがCSS仕様の大きな見落としであると考えてきました。私の経験では、任意の属性に基づいているよりも、子孫に基づいて要素をスタイルする方がはるかに多いようです。 – Chuck
しかし、Eric Meyer氏の記事によると、JSではこれが可能であるにもかかわらず、「パフォーマンスの問題なしに実装するのは難しい」と考えられています(http://meyerweb.com/eric/thoughts/2009/02/12/セレクタブロック/)。あるいは少なくとも私はJSで可能だと仮定しています。 –