CSSの〜と>の目的は何ですか?たとえば、次の式はどういう意味ですか?
:checked ~ label ~ .content > *
セレクターの意味:
次
のクラスが入力要素 の後に続く要素の子である要素を選択します。content
label
:checked
>
子コンビネータです。特定の親要素の子である要素を選択します。スペース(子孫コンビネータ)とは異なり、すぐにネストされた要素のみを選択します。それがどのように機能するかについての実例については、この答えを参照してください。
~
一般的な兄弟コンビネータです。同じ親内の他の要素の後に続く要素を選択します(つまり、兄弟です)。(隣接する兄弟コンビネータ)とは異なり+
、同じ親内の別の要素の直後に続く要素は必要ありません。下の図を、コンビネータをカバーするこの他の答えと比較してください。+
コンビネータは兄弟要素を選択する~
だけではないので、注意してください。兄弟の後に来る要素のみを選択するため、チェックされた入力要素の前にある要素とは一致しません。:checked ~ label
label
イラスト:
<section>
<input type="radio" name="example1" value="1" checked>
<label>1</label>
<input type="radio" name="example1" value="2">
<label>2</label>
<input type="radio" name="example1" value="3">
<label>3</label>
<div class="content">
<h3>Subheading 1</h3> <!-- [1] Selected -->
<p>Some text <!-- [1] Selected -->
<em>with emphasis</em> <!-- [2] Not selected -->
</p>
<p>Some text</p> <!-- [1] Selected -->
</div>
</section>
<section>
<input type="radio" name="example2" value="1">
<label>1</label>
<input type="radio" name="example2" value="2">
<label>2</label>
<input type="radio" name="example2" value="3">
<label>3</label>
<div class="content">
<h3>Subheading 1</h3> <!-- [3] Not selected -->
<p>Some text <!-- [3] Not selected -->
<em>with emphasis</em> <!-- [2] Not selected -->
</p>
<p>Some text</p> <!-- [3] Not selected -->
</div>
</section>
選択されたものとされていないもの:
選択済み
この要素h3
または要素は、親要素p
のすぐ内側にあります。.content
その.content
要素は少なくとも1つのに続きlabel
、これlabel
は少なくとも1つの入力要素の後に発生します:checked
。
上記のようにすぐに続くラベルを必要としないため、ここのラジオボタンのいずれかをチェックでき、要素が一致することに注意してください。~
また、構造が与えられると、セレクターのいずれかを:~
に交換できます。+
:checked + label ~ .content > *
:checked ~ label + .content > *
しかし、このセレクター:
:checked + label + .content > *
3番目のラジオボタンがチェックされている場合にのみ一致します。これは、その直後label
にaと.content
要素が続く唯一のボタンであるためです。
選択されていません
この要素は、それ自体がに含まれている要素em
の1つにネストされています。こちらのイラストでは、の子ではないため選択しません。p
.content
.content
選択されていません
[1]とは異なり、このセクションのどの要素も入力要素のlabel
後に続きません。:checked
したがって、を満たさないため、ここでは何も選択されません:checked ~ label
。
Cf. http://www.w3.org/TR/selectors/:
E ~ F
E要素の前にあるF要素E要素
E > F
の子F要素
:checked
ラジオボタンまたはチェックボックスの疑似クラスですhttp://reference.sitepoint.com/css/pseudoclass-checked
~
一般的な兄弟セレクターです
:checked ~ label
選択したチェックボックスまたはラジオボタンの後にあるラベルを選択します(2つの間に任意の数の要素がありますが、それらは同じレベルにあり、ラベルは選択したチェックボックスまたはラジオボタンの後にあります)
:checked ~ label ~ .content
クラスの内容があり、上記のラベルの後にある要素を選択します(ここでも、要素の間に任意の数の要素が存在する可能性があります)
>
子セレクターですhttp://www.w3.org/TR/CSS2/selector.html#child-selectors
:checked ~ label ~ .content > *
上記の要素の子を選択します
*
すべての要素が要素の下に
:checked
チェック済みステータス
.
クラス名を入力します
>
http://w3schools.com/cssref/css_selectors.asp
このページはあなたに役立ちます