<optgroup>:選択式メニューの項目をグループ化する要素・HTMLタグの解説

取り扱い 標準仕様
カテゴリー なし
親にできる要素 <select>
子にできる要素 <option>
対応ブラウザ caniuseで確認

<optgroup>タグの解説

<optgroup>は、選択式のメニューに含まれる項目のグループを作成します。<select>の子要素に配置された<option>をまとめて、グループの先頭に見出しを付ける機能があります。

<select>で作成したメニューは、プルダウン式のリストとして表示されますが、選択肢の数が増えると目的の項目を探し辛くなります。<optgroup>は、そのようなリストの項目をカテゴリーやジャンルで分類して見やすく整理したい場合に役立ちます。

この要素を使用すると、選択式メニューの項目がグループごとに区分けされたリストとして表示されます。各グループの先頭には見出しを表示できるため、数が多い項目の中から条件を絞り込む目安となります。

<optgroup>タグの特徴

  • レイアウトには影響を与えません。セレクト項目の一覧表に階層を与えます。
  • 同一のページ内に複数使うことができます。ただし、この要素自体を入れ子にすることはできません。

<optgroup>要素に指定できる属性

label
グループ化した項目を代表する見出しを指定します。必須属性です。
disabled
ユーザーの操作を受け付けない状態にします。既定値ではインターフェイスの色が薄くなり、クリックやフォーカスなどのイベントに反応しなくなります。これは値のない論理属性です。
グローバル属性
全てのHTML要素に指定できる共通の属性です。詳細は一覧表で解説します。
イベントハンドラ
全てのHTML要素に指定できるコンテンツ属性です。

<optgroup>要素の使い方とサンプルコード

この要素の最も基本的な書き方は以下の通りです。配置箇所は必ず<select>の子要素であり、<option>の親要素になります。label属性は必須です。グループの先頭に表示させる見出しを指定できます。


<select name="key">
	<optgroup label="name">
		<option value="1">メニュー項目1</option>
		<option value="2">メニュー項目2</option>
		<option value="3">メニュー項目3</option>
	</optgroup>
</select>

disabled属性でユーザーの操作を受け付けないグループにする

disabled属性を指定すると、ユーザーの操作を受け付けない状態になります。前のページやフォームに配置されたデータフィールドの状況をトリガーにして、選択できる項目を変えたい場合などに有効です。


<select name="key">
	<optgroup label="name">
		<option value="1">メニュー項目1</option>
		<option value="2">メニュー項目2</option>
		<option value="3">メニュー項目3</option>
	</optgroup>
	<optgroup label="disabled" disabled>
		<option value="4">選択できません</option>
		<option value="5">選択できません</option>
		<option value="6">選択できません</option>
	</optgroup>
</select>

カテゴリーやジャンルごとに項目を分類して見出しをつける

カテゴリーやジャンルで分けられる項目であれば、積極的に<optgroup>で囲い階層化してしまいましょう。選択肢が多くなったメニューはユーザーの直下的な操作の妨げになります。


<form class="sample-block">
	<p>機材を選んで下さい。</p>
	<select name="studio">
		<optgroup label="ギターアンプ">
			<option value="marshall">マーシャル</option>
			<option value="mesa">メサブギー</option>
			<option value="fender">フェンダー</option>
			<option value="roland">ローランド</option>
		</optgroup>
		<optgroup label="ベースアンプ">
			<option value="ampeg">アンペグ</option>
			<option value="gibson">ギブソン</option>
			<option value="hartke">ハートキー</option>
			<option value="peavey">ピーヴィー</option>
		</optgroup>
	</select><br>
	<button type="submit">決定</button>
</form>

<optgroup>に関連するHTMLタグ

入力・送信フォームに関連する要素
<form> 入力・送信フォームを作成する
<fieldset> フォームの入力項目をグループ化する
<legend> 入力項目のグループにキャプションを与える
<input> フォームを構成する部品を作成する
<label> 入力項目にキャプションを与えて関連付ける
<textarea> 複数行に渡るテキスト編集項目を作成する
<button> 操作可能なボタンを設置する
<select> 選択式メニューの枠を作成する
<option> 選択式メニューの項目を作成する
<optgroup> 選択式メニューの項目をグループ化する
<datalist> フォームの入力欄に入力候補となる選択肢を提供する