2

CSSに:hiddenセレクターがないことを知っている限り、この厄介な問題を解決する方法を見つけようとしていますが、jQueryで使用できます。私がcssで知っている他のセレクターは:emptyだけですが、私の要素は常に空であるとは限りませんが、それでも非表示になっています。

これが私がやろうとしていることです。

 <div class="wrapper">
     <div class="one"></div>
     <div class="two"></div>
 </div>

「1つ」または「2つ」を選択できるようにしたいのですが、現在非表示になっている場合は、そうでない他の要素に対して何かを実行したいと思います。

お気に入り:

.wrapper .one:hidden .wrapper .two

jQueryでこれを実行できることはわかっていますが、非表示の要素が表示に変わるかどうか、またはその逆に変わるかどうかに基づいて自動的に調整される方法を見つけたいと思います。

4

5 に答える 5

1

純粋な CSS では原理的に不可能です。もし CSS がこれを許せば、「最初に現れたキツツキが文明を破壊するだろう」 .

次のようなものを検討してください。

.wrapper .one:not(:hidden) .wrapper .one { display:none; }

これにより、完全な無限ループが作成されます。あなたのブラウザはそれを解決しようとして死ぬでしょう。

興味深い場合は、このテーマに関する私の記事を読むことができます。

于 2012-08-17T04:31:32.577 に答える
1

css の非表示セレクターがあるかどうかはわかりませんが、それまでの間、おそらく非表示のクラスを追加できますか?

.wrapper .one.hidden

于 2012-08-17T04:02:17.383 に答える
0

私はあなたがこのようなものを探していると思います:

デモを見る

jQuery:

if($('.one').is(":hidden")) {
   $(".two").css("color","red")    
}​
于 2012-08-17T04:20:55.763 に答える
0

CSS セレクターの完全なリストは、こちらで確認できます。残念ながら、現在の CSS スタイルによる可視性または選択に適用されるものはありません。

visibleコードを最小限に抑える方法は、CSS でスタイルを設定できるクラスを両方に与えることです。次に、jQuery を使用してvisible、要素が非表示になるたびにクラスを削除し、再び表示されるときにクラスを追加します。あまり合理化されていませんが、最善の解決策のようです。

于 2012-08-17T04:07:39.160 に答える
0

このjsfiddleはどうですか

隠されているものを探して他のものに何かをする代わりに、見えるものを探してみませんか?

$(document).ready(function() {

    $('.wrapper div').each(function() {
        if ($(this).is(':visible')) {
          //do something special
        }
    })

})
于 2012-08-17T04:07:47.210 に答える