グループごとに表示するトグルスイッチを作る方法
グループごとに表示するトグルスイッチを作る方法を紹介します。このサンプルでは、関連する設定項目を「通知設定」「表示設定」「プライバシー設定」のようにグループごとへ分類し、それぞれの見出しの下へトグルスイッチをまとめて表示します。設定内容を整理しながら表示できるため、多くの設定項目がある画面でも見やすく管理しやすいレイアウトを実現できます。
会員サイトの設定画面、管理画面、スマートフォンアプリの設定ページ、管理ツールなど、複数の設定項目を扱う画面に適しています。グループごとに区切って表示することで目的の設定を探しやすくなり、利用者が設定内容を把握しやすくなります。各トグルスイッチは独立して動作するため、それぞれ自由にON・OFFを切り替えられます。
HTMLではグループ名や設定項目名を自由に変更でき、CSSではカードの余白、背景色、枠線、見出しのデザイン、トグルスイッチの配置などを用途に合わせて調整できます。レスポンシブにも対応しているため、スマートフォン・タブレット・PCでも見やすい設定画面を作成できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
設定項目をグループごとに整理した表示例です。それぞれのトグルスイッチは独立してON・OFFを切り替えられます。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマートフォン対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>グループごとに表示するトグルスイッチ</title>
<!-- CSSファイル -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- 設定全体 -->
<div class="toggle-group-display_wrap">
<!-- タイトル -->
<div class="toggle-group-display_title">
設定
</div>
<!-- 通知設定グループ -->
<div class="toggle-group-display_section">
<!-- グループ見出し -->
<div class="toggle-group-display_heading">
通知設定
</div>
<!-- メール通知 -->
<div class="toggle-group-display_row">
<!-- 設定項目名 -->
<span>メール通知</span>
<!-- トグルスイッチ -->
<label class="toggle-group-display_switch">
<!-- 初期状態をONにするチェックボックス -->
<input
type="checkbox"
checked
aria-label="メール通知を切り替える">
<!-- スイッチの背景と丸いノブ -->
<span class="toggle-group-display_slider"></span>
</label>
</div>
<!-- SMS通知 -->
<div class="toggle-group-display_row">
<!-- 設定項目名 -->
<span>SMS通知</span>
<!-- トグルスイッチ -->
<label class="toggle-group-display_switch">
<!-- 初期状態をOFFにするチェックボックス -->
<input
type="checkbox"
aria-label="SMS通知を切り替える">
<!-- スイッチの背景と丸いノブ -->
<span class="toggle-group-display_slider"></span>
</label>
</div>
</div>
<!-- 表示設定グループ -->
<div class="toggle-group-display_section">
<!-- グループ見出し -->
<div class="toggle-group-display_heading">
表示設定
</div>
<!-- ダークモード -->
<div class="toggle-group-display_row">
<!-- 設定項目名 -->
<span>ダークモード</span>
<!-- トグルスイッチ -->
<label class="toggle-group-display_switch">
<!-- 初期状態をOFFにするチェックボックス -->
<input
type="checkbox"
aria-label="ダークモードを切り替える">
<!-- スイッチの背景と丸いノブ -->
<span class="toggle-group-display_slider"></span>
</label>
</div>
<!-- アニメーション -->
<div class="toggle-group-display_row">
<!-- 設定項目名 -->
<span>アニメーション</span>
<!-- トグルスイッチ -->
<label class="toggle-group-display_switch">
<!-- 初期状態をONにするチェックボックス -->
<input
type="checkbox"
checked
aria-label="アニメーションを切り替える">
<!-- スイッチの背景と丸いノブ -->
<span class="toggle-group-display_slider"></span>
</label>
</div>
</div>
</div>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
ファイル構成と設置方法
このサンプルはHTMLとCSSの2ファイルで構成されています。HTMLでは通知設定と表示設定をグループごとにまとめ、それぞれの設定項目へトグルスイッチを配置しています。CSSではカードデザインやグループの区切り、トグルスイッチの見た目、ON・OFF時の表示を設定しており、設定画面のようなレイアウトを簡単に作成できます。
sample/
├── index.html
└── style.css
各ファイルの役割
index.htmlは設定画面全体を構成するファイルです。グループ名、設定項目名、各トグルスイッチの初期状態を変更できます。通知設定や表示設定など、用途に合わせてグループや項目を追加・削除できます。
style.cssは画面全体のデザインを設定するファイルです。カードの背景色、グループごとの枠線や余白、タイトル、トグルスイッチの色、サイズ、角丸、アニメーションなどを変更できます。
設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置します。2つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。通知設定や表示設定がグループごとに表示され、それぞれのトグルスイッチを個別にON・OFFできます。
カスタマイズできる内容
index.htmlではタイトル、グループ名、設定項目名、各トグルスイッチの初期状態を変更できます。グループや設定項目を追加・削除することで、アプリや管理画面に合わせた設定一覧へ変更できます。
style.cssでは全体の横幅、背景色、余白、角丸、枠線、グループ間の間隔、見出しの文字サイズ、トグルスイッチの色やサイズ、ON・OFF時のデザイン、アニメーション速度などを変更できます。
数値調整
style.css
max-width:680px;
設定画面全体の最大横幅です。値を大きくすると横へ広がり、小さくするとコンパクトになります。
margin:40px auto;
設定画面の上下余白です。40pxを変更すると上下の間隔が変わります。
padding:32px;
設定画面全体の内側余白です。値を大きくすると内容と枠線の間隔が広がります。
border-radius:18px;
設定画面全体の角丸です。値を大きくすると丸みが強くなります。
padding:18px;
各グループ内の余白です。値を変更するとグループ内のゆとりが変わります。
margin-bottom:24px;
グループ同士の間隔です。値を大きくするとグループ間が広がります。
gap:20px;
項目名とトグルスイッチの間隔です。値を変更すると左右の余白が変わります。
width:54px;
トグルスイッチの横幅です。値を大きくするとスイッチ全体が横長になります。
height:30px;
トグルスイッチの高さです。値を大きくするとスイッチ全体が大きくなります。
width:22px;
height:22px;
丸いノブのサイズです。値を大きくするとノブが大きく表示されます。
transform:translateX(24px);
ONになったときのノブの移動量です。値を変更すると移動距離が変わります。
transition:0.3s;
スイッチの切り替え時間です。0.3秒でアニメーションします。値を大きくするとゆっくり、小さくすると速く切り替わります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:680pxによって画面幅に応じてレイアウトが縮小されます。また、640px以下では余白を調整するmedia queryを使用しているため、スマートフォン・タブレット・PCでも見やすく利用できます。
コメント