--- title: ':checked' slug: 'Web/CSS/:checked' tags: - ':checked' - CSS - Checked - Layout - Pseudo-class - Reference - Selector - Toggled - Web - button - checkbox - radio translation_of: 'Web/CSS/:checked' ---
:checked
は CSS の擬似クラスセレクターで、ラジオボタン (<input type="radio">
)、 チェックボックス (<input type="checkbox">
)、 オプションボタン ({{HTMLElement("select")}} の中の {{HTMLElement("option")}}) 要素がチェックされていたり on
の状態にあったりすることを表します。
/* すべての選択中のラジオボタン、チェックボックス、オプションボタン */ :checked { margin-left: 25px; border: 1px solid blue; }
ユーザーは要素をチェック/選択することでこの状態にすることができ、要素のチェックや選択を外すとこの状態から外れます。
メモ: ブラウザ―は <option>
を置換要素として扱うことが多いので、 :checked
擬似クラスでスタイルが適用される部分の大きさはブラウザ―によって異なります。
<div> <input type="radio" name="my-input" id="yes"> <label for="yes">Yes</label> <input type="radio" name="my-input" id="no"> <label for="no">No</label> </div> <div> <input type="checkbox" name="my-checkbox" id="opt-in"> <label for="opt-in">Check me!</label> </div> <select name="my-select" id="fruit"> <option value="opt1">Apples</option> <option value="opt2">Grapes</option> <option value="opt3">Pears</option> </select>
div, select { margin: 8px; } /* チェックが入った入力のラベル */ input:checked + label { color: red; } /* チェックが入ったラジオボタン */ input[type="radio"]:checked { box-shadow: 0 0 0 3px orange; } /* チェックが入ったチェックボックス */ input[type="checkbox"]:checked { box-shadow: 0 0 0 3px hotpink; } /* 選択されたオプション */ option:checked { box-shadow: 0 0 0 3px lime; color: red; }
{{EmbedLiveSample("Basic_example")}}
この例では、 :checked
擬似クラスを利用して、ユーザーにチェックボックスの状態に基づいたコンテンツの切り替えができるようにします。 JavaScript はまったく使っていません。
<input type="checkbox" id="expand-toggle" /> <table> <thead> <tr><th>Column #1</th><th>Column #2</th><th>Column #3</th></tr> </thead> <tbody> <tr class="expandable"><td>[more text]</td><td>[more text]</td><td>[more text]</td></tr> <tr><td>[cell text]</td><td>[cell text]</td><td>[cell text]</td></tr> <tr><td>[cell text]</td><td>[cell text]</td><td>[cell text]</td></tr> <tr class="expandable"><td>[more text]</td><td>[more text]</td><td>[more text]</td></tr> <tr class="expandable"><td>[more text]</td><td>[more text]</td><td>[more text]</td></tr> </tbody> </table> <label for="expand-toggle" id="expand-btn">Toggle hidden rows</label>
/* トグルチェックボックスを隠す */ #expand-toggle { display: none; } /* 開く要素は既定で隠す */ .expandable { visibility: collapse; background: #ddd; } /* ボタンにスタイルを適用 */ #expand-btn { display: inline-block; margin-top: 12px; padding: 5px 11px; background-color: #ff7; border: 1px solid; border-radius: 3px; } /* チェックボックスをチェックしたときに隠しコンテンツを表示 */ #expand-toggle:checked ~ * .expandable { visibility: visible; } /* チェックボックスがチェックされていたらボタンにスタイルを適用 */ #expand-toggle:checked ~ #expand-btn { background-color: #ccc; }
{{EmbedLiveSample("Toggling_elements_with_a_hidden_checkbox", "auto", 220)}}
:checked
擬似クラスを使って、ユーザーがサムネイルをクリックしたときだけフルサイズの画像が表示される画像ギャラリーを構築できます。実行してみるにはこのデモを参照してください。
仕様書 | 状態 | 備考 |
---|---|---|
{{ SpecName('HTML WHATWG', '#selector-checked', ':checked') }} | {{ Spec2('HTML WHATWG') }} | 変更なし。 |
{{ SpecName('HTML5 W3C', '#selector-checked', ':checked') }} | {{ Spec2('HTML5 W3C') }} | HTML に関する意味を定義。 |
{{ SpecName('CSS4 Selectors', '#checked', ':checked') }} | {{ Spec2('CSS4 Selectors') }} | 変更なし。 |
{{ SpecName('CSS3 Selectors', '#checked', ':checked') }} | {{ Spec2('CSS3 Selectors') }} | 擬似クラスを定義、但し意味の結びつけの定義はなし |
{{Compat("css.selectors.checked")}}
<input type="checkbox">
, <input type="radio">
, {{HTMLElement("select")}}, {{HTMLElement("option")}}