チェックボックスがオンの場合、ラベルをハイライトします


回答:


147

あなたが持っている場合

<div>
  <input type="checkbox" class="check-with-label" id="idinput" />
  <label class="label-for-check" for="idinput">My Label</label>
</div>

できるよ

.check-with-label:checked + .label-for-check {
  font-weight: bold;
}

この動作を参照してください。これは最新ではないブラウザでは機能しないことに注意してください。


2
OPがIEを気にしない限り、これはIE 6-8では機能しません。
フセイン

25
私は知っている、私はそれが私の答えで現代のブラウザでのみ機能することを指摘しました。
Andrew Marshall

4
@ inf3rnoする必要があります。両方の隣接兄弟セレクタと、:checkedセレクタは IE9でサポートされているように記載されています。Microsoft自身のドキュメントはこれを確認します。
アンドリューマーシャル

3
良い解決策ですが、ラベル要素が次の祖先でない場合は、+セレクタの代わりに〜セレクタを使用してみてください456bereastreet.com/archive/200601/css_3_selectors_explained(表の最後)
Karl Adler

@abimelexただし、HTMLによっては、<label>必要以上にに一致する可能性があります。
Andrew Marshall

101

Andrewの提案が気に入っています。実際、CSSルールは次のようにするだけです。

:checked + label {
   font-weight: bold;
}

私は、暗黙の関連性に依存したいlabelinput、私はこのような何かをしたいので、要素:

<label>
   <input type="checkbox"/>
   <span>Bah</span>
</label>

CSSを使用:

:checked + span {
    font-weight: bold;
}

例:http : //jsfiddle.net/wrumsby/vyP7c/


チェックボックスの親ラベルの背景色を変更するコツがあります。ラベルオーバーフローを作る:隠され、その後、非常に大規模なドロップシャドウ...チェックボックスを与えます:checked { box-shadow: 0 0 0 500px orange; }。兄弟要素が非表示にならないようにするには、z-indexを操作する必要があります。
アーロンチカリ

8

これは、:checked疑似クラスを使用してフォームをよりアクセシブルにする例です。:checked擬似クラスは、画像ギャラリーなどのインタラクティブウィジェットを構築するために隠された入力とその可視ラベルで使用することができます。私はテストしたい人々のために切り取られて作成しました。

input[type=checkbox] + label {
  color: #ccc;
  font-style: italic;
} 
input[type=checkbox]:checked + label {
  color: #f00;
  font-style: normal;
} 
<input type="checkbox" id="cb_name" name="cb_name"> 
<label for="cb_name">CSS is Awesome</label> 


-24

CSSだけでこれを行うことはできません。あなたができるjQueryを使用して

HTML

<label id="lab">Checkbox</label>
<input id="check" type="checkbox" />

CSS

.highlight{
    background:yellow;
}

jQuery

$('#check').click(function(){
    $('#lab').toggleClass('highlight')
})

これはすべてのブラウザで機能します

http://jsfiddle.net/LgADZ/で実際の例を確認してください


8
質問はJavaScript以外の方法であると述べ、あなたが明確にCSSのみを使用して動作する方法を示す前の回答
Kevin

2
承認されたソリューションは、CSS 2.1の機能である隣接する兄弟セレクターを使用します。
Walter Rumsby

jQueryは、クロスブラウザーのサポートを保証する唯一のソリューションです。
フセイン

7
そこでフセインに気をつけてください。JavaScriptを使用して隣接する兄弟セレクターをサポートしていないInternet Explorer 6などのブラウザーをサポートできますjQueryは、これを行うのに役立つJavaScriptライブラリです。これを行うことができる他のライブラリー(または純粋なJavaScript!)があります。
Simon Lieschke

再:私の以前のコメント、私は:checked疑似セレクターがCSS3機能であることを知りませんでした。
Walter Rumsby 2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.