私はチェックボックスとラベルのリストを持っています。 checboxがチェックされているとき、私はラベルにスタイルを適用するには、このCSSを使用しています:スタイルに影響を与えるInput要素とLabel要素のHTML順
input[type=checkbox]:checked + .CheckLabels {background-color: green;}
を、私はこのように私のHTML注文すると:
<input type="checkbox" name="C" id="checkC" value="C" checked>
<label class="CheckLabels" for="checkC">C</label>
<input type="checkbox" name="D" id="checkD" value="D" checked>
<label class="CheckLabels" for="checkD">D</label>
をそれが意図したとおりに動作します:Cのラベルをクリック緑のスタイルを追加または削除します。しかし、ラベルを入力する前に、のラベルをクリックすると、に続いてラベルのスタイルが適用/削除されます。すなわち:(適切なチェックボックスがまだチェックされているけれども。)Cのラベルをクリックすると、Dラベルからグリーンを追加したり削除し
<label class="CheckLabels" for="checkC">C</label>
<input type="checkbox" name="C" id="checkC" value="C" checked>
<label class="CheckLabels" for="checkD">D</label>
<input type="checkbox" name="D" id="checkD" value="D" checked>
なぜこの出来事はありますか? display:none
を使用しているので、特にラベルとチェックボックスの順番には付いていません。しかし、何が起こっているか知っているといいですね。
私は他の人々がどのように隣接兄弟セレクタ作品を説明してきたと思います。それを使い、入力/ラベルの表示を元に戻したい場合は、 'flex' https://codepen.io/mcoker/pen/YQaxJzを使うことができます。あなたは注文について気にしないと言ったので、それを解決策として望むかどうかは分かりません。 –
'+'セレクタを理解しようとしているだけの場合、この質問はhttps://stackoverflow.com/questions/1139763/what-does-the-plus-sign-css-selector-meanの複製です –