2012-08-09 4 views
5

子画像タグを持たない外部サイトにリンクするすべてのアンカータグを選択しようとしています。私はリンクとして画像を持っている場合、それらの画像の隣に小さな外部リンクアイコンも追加しますが、私はそれを望んでいません。CSSセレクタ:いいえ<img>子として

これは私がこれまで持っているものされています追加ボーナスとして

a[href^="http://"]{ 
    background:transparent url(..icon/external.png) center right no-repeat; 
    display:inline-block; 
    padding-right:18px; 
} 

は、どのように私はそれが仕事になるだろう「https://で」リンクとしても?

+2

これは現在CSSで行うことができません。 [親セレクタはまだありません。](0120-27753-1) – thirtydot

+0

CSS 4仕様が標準になるのを待つことはできません...そこから来るにはたくさんのクールな機能があるようです。 – MaxGhost

+0

パディングはリンクの右側のアイコンにスペースを与え、背景は右に揃えてイメージ自体を追加します。 inline-blockは画像を含むリンク全体をクリック可能にします。 [詳細はこちら](http://web-kreation.com/all/add-file-type-icons-next-to-your-links-with-css/) – MaxGhost

答えて

6

これは普通のCSSでは不可能です。

のjQuery:

$("a[href^='http://']:not(:has(img))").addClass("external"); 

CSS:

a.external { 
    background:transparent url(..icon/external.png) center right no-repeat; 
    display:inline-block; 
    padding-right:18px; 
} 

参照デモ:(HTTPSを含む)http://jsfiddle.net/hKTBp/

参照デモ:http://jsfiddle.net/hKTBp/1/

あなたはjQueryの魔法のビットを使用することができますしかし、
+0

私はあなたが安全にできるとは思わないjQueryがインストールされていると仮定します。 – kojiro

+2

@kojiro私は同意しますが、OPが望んでいることは不可能であると私は安全に言うことができ、きちんとした選択肢を提供しました。 – Curt

+1

素敵な修正!私は非JSソリューションが好まれていましたが、これはうまくいきます。私はjQueryを持っているので、これは問題ありません。 – MaxGhost

関連する問題