2

私のページには、カスタム スタイルのハイパーリンクがあり、ハイパーリンクされた画像もたくさんあります。画像のみを含むハイパーリンクにこれらのカスタム スタイルを表示したくありません。ハイパーリンクされた各画像に個別のクラス (つまり「nostyle」) を追加する代わりに、スタイルシートからハイパーリンクされた画像を対象にすることはできますか?

4

4 に答える 4

5

CSS で一致した項目の親を直接選択することはできません。js には回避策があります (要素を検索し、クラス属性をその親ノードに適用するなど) が、少しぎこちないようです。ドキュメント構造をリファクタリングして、より洗練された解決策を見つけることをお勧めします。

于 2009-04-01T02:39:37.797 に答える
1

確かに、ただ使ってください

a img {
  // your style here...
}

特定のクラスのリンク内の画像のみをターゲットにしたい場合は、

a.yourclass img {}
于 2009-04-01T02:29:52.547 に答える
0

アンカー クラスは必要ありません。

a[rel="image"] img {}
于 2009-04-01T03:15:31.593 に答える
0

あなたが答えを求めているように聞こえることに基づいて、答えはノーです。CSS のみで前方に戻ることはできません。

Theo.T が述べたように、JS の回避策が考えられます。

1 つのアイデアは、要素の innerHTML チェックを実行して、要素の内部に <img> タグがあるかどうかを確認し、ある場合は element.className = "nostyle"; を変更することです。しかし、これは厄介な回避策であり、JS (およびクロスブラウザー) で正しい構文を取得するまでに、ドキュメントをリファクタリングすることができます。

于 2009-04-01T02:50:36.287 に答える