CSS辞書
UIレシピ集に戻る

セグメンテッドコントロール

ボタン・操作Baseline 広く利用可能

iOS風の切り替えスイッチをradioボタンで実装。見た目はCSSだけで作り、キーボード操作とフォーム送信はブラウザ標準のまま使えます。

プレビュー

Live

プレビュー枠は右下をドラッグすると高さを変えられます

コードを編集して試す

書き換えるとプレビューに即反映されます。変更はこのページ内だけで、リロードすると元に戻ります。

HTML
CSS

仕組みの解説

実体はただのradioボタンです。input自体は appearance: none と absolute 配置で見えなくし、隣接する span を「:checked + span」で選択中の見た目に切り替えます。radioなのでTabでグループに入り矢印キーで選択でき、name属性ごとフォーム送信にも使えます。フォーカスリングは input:focus-visible + span で span 側に描きます。

実装のポイント

divとJSで自作するとキーボード操作・aria属性をすべて自前で書くことになります。radioで作れば無料でついてきます。

AIに依頼するときの文例

radioボタンを使ったセグメンテッドコントロール(iOS風の切り替えUI)を作ってください。inputはappearance: noneで隠し、:checked + spanで選択状態を表現、フォーカスリングも表示してください。JSは使わないでください。

使っているプロパティ