0

私は基本的にコンテンツのリストを持っています。これはすべて外部 URL に移動します (新しいウィンドウで開きます)。今のところ、私は a:visited を灰色に設定していますが、リスト項目全体 (クリックしたアンカー リンクを含む) の不透明度を下げることが本当に好きです。

この動作は reddit で確認できます。

たとえば、あなたが持っているとしましょう

<div class="item">
  <a href="http://google.com">Click me</a>
</div>

そして、あなたは多くの行を持っています.item

リンクをクリックすると、div全体が :visited 状態を「見る」ことができるようになり、テキストが灰色になるのではなく、.itemに設定されます。opacity: .5;

JSまたはCSSでこれを行う方法はありますか?

4

3 に答える 3

2

これは技術的な問題の正確な解決策ではありませんが、構造を変更して、親<a>の文体のニーズを達成することは可能でしょうか?<div>

言い換えれば、を殺して<div>、ただ使うだけ<a>です。そうすれば、それが「訪問」されたときに、好きなことをすることができます。

于 2012-08-14T01:00:04.880 に答える
1

:visitedjQueryにはセレクターがないようです。このプラグインをチェックしてください: http://remysharp.com/2008/02/25/visited-plugin/

このプラグインを使用すると、次のいずれかを使用してこの効果を実装できます。

$("a").visited().each(function() {
    $(this).parent().css("opacity", "0.5");
});

またはこれ:

$(".item").filter(function() {
    return $(this).find("a").visited().length;
}).css("opacity", "0.5");
于 2012-08-14T00:48:16.633 に答える
0

CSS4セレクターがサポートされると(現在のドラフトが現在のフォームと同様の形式で受け入れられると想定)、

div.item! > a:visited

訪問したのdivクラスを持つ親を選択します。itema

それまでは、cssParentSelectorが機能する可能性があります。

于 2012-08-14T01:04:58.343 に答える