2011-02-05 9 views
0

私のリンクには目立つように背景色を付けますが、テキストではなく子の画像を持つリンクにも適用されるという問題があります。その結果、画像の下部に小さな背景が表示されます。 (http://blog.cmstutorials.org/reviews/general/featured-tutorial-of-the-week-05-feb-2011を参照)css - 画像の親のときに背景からリンクを外します

imgが子供のときにリンクの背景を削除するにはどうすればよいですか?私はこのようなsometingが動作しますが:

.featured_tutorial img < a 

答えて

1

CSSはparentセレクタをサポートしていません。

あなたがa.this_link_contanis_img{ /*override background*/ }

のようなクラスを使用する必要がありますまたは多分あなたは、IMGに新しいプロパティを設定することができます。これは、リンクの背景を隠す可能性があります。

.featured_tutorial img{ /*override background*/ }

編集:あなたのケースで[OK]をクリックし、その文句を言わない仕事..

0

カスケーディングスタイルシートは、要素 "後方へのアクセス"を許可しません。親の要素ではなく、要素の子にのみアクセスできます。

0

画像は、デフォルトでは、インラインレベル要素であり、テキスト行のベースラインに位置しているので、それは一番下に漏れてバックグラウンドを持っていますそれらが置かれているので、ベースラインと下降線の間に色漏れが生じる隙間があります。あなたは2つの方法でそれを取り除くことができます。

​​

またはインライン

a img { vertical-align: bottom } 

として表示したままにしたい場合は、それはイメージがあるテキスト行の下降ラインに画像を整列するよう、これはあなたの問題を解決する必要がありますについては、SET CSSインラインモードのときに配置されます。

T.、それが役に立てば幸い

0

としては、そこにはCSSの修正はありませんが、あなたはすでにjQueryのを使用しているとして、これは私がそれを

http://jsfiddle.net/vrqCV/

をやって考えることができる唯一の方法です言及
jQuery(document).ready(function() { 
    jQuery("a:not(:has(img))").addClass("bg"); 
}); 
0

すでに指摘したように、CSSにはDOMツリーを「見上げる」方法がありません。基本的にパフォーマンスの考慮事項になります。 (ここにはone explanationです。)

しかし、この種のことをJavascriptでタックするのに必要な時代に反していないのであれば、jQueryは:parent selectorです。