Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
* Some parts of this feature may have varying levels of support.
<select> は HTML の要素で、選択式のメニューを提供するコントロールを表します。
上の例は、典型的な <select> の利用方法を示しています。 id 属性を指定して、アクセシビリティのために <label> と関連付けられるようにするとともに、 name 属性を指定して、サーバーに送信されるデータポイントと関連付ける名前を表します。それぞれのメニューの選択肢は、 <select> の中の <option> 要素で定義されます。
それぞれの <option> 要素には、選択肢が選択されたときにサーバーに送信するデータの値を持つ value 属性があります。 value 属性が含まれていない場合は、既定で要素の中に含まれるテキストの値が使用されます。 selected 属性を<option> 要素に付けることで、ページが最初に読み込まれたときに既定で選択状態にすることができます。 selected 属性が指定されていない場合、最初の <option> 要素が既定で選択されます。
<select> 要素は JavaScript では HTMLSelectElement オブジェクトで表され、このオブジェクトの value プロパティは、選択された <option> の値を持っています。
<select> 要素は、複数の選択肢を選択することができるかどうかを定める multiple、同時にいくつの選択肢を表示することができるかを定める size など、制御のために利用することができる固有の属性がいくつかあります。 required、disabled、autofocus などのような一般のフォーム入力属性の多くも受け付けます。
さらに、 <option> 要素を <optgroup> 要素の中に入れることで、ドロップダウンの中で選択肢をグループに分割することができます。また、<hr> 要素を含めることで、選択肢間に視覚的な区切りを追加することができます。
その他の例は、ネイティブフォームウィジェット: ドロップダウンコンテンツを参照してください。
この要素にはグローバル属性があります。
autocomplete文字列で、ユーザーエージェントの自動補完機能のヒントを提供します。値の完全なリストや自動補完の使い方の詳細は、 HTML の autocomplete 属性を参照してください。
autofocus論理属性で、ページが読み込まれた時にこのフォームコントロールが入力フォーカスを持つべきであることを指定することができます。文書内で autofocus 属性を持つことができるフォーム要素は一つだけです。
disabled論理属性で、ユーザーがそのコントロールを利用することができないことを示します。もしこの属性が指定されていない場合、コントロールはその設定を親要素、例えば <fieldset> 要素から継承します。もし親要素に disabled 属性を持つものがなければ、そのコントロールは利用可能です。
formこの <select> を関連付ける <form> 要素(フォームオーナー)です。この属性の値は、同じ文書内の <form> 要素の id でなければなりません。(この属性が設定されていない場合は、 <select> はその祖先である <form> が存在すれば、それと関連付けられます。)
この属性によって、 <select> 要素は、 <form> 要素の子孫に限らず、文書内のどこの <form> と結び付けることもできます。これは祖先の <form> を上書きすることもできます。
multiple論理属性で、リストの複数の選択肢を選択することができることを示します。指定されていない場合は、一度に選択することができる選択肢は一つだけです。 multiple が指定されている場合、多くのブラウザーは単一行のドロップダウンの代わりに、スクロールするリストボックスを表示します。複数選択された選択肢は、 URLSearchParams の配列の規約、つまり name=value1&name=value2 の形式を使用して送信されます。
nameこの属性は、コントロールの名前を指定するために使用します。
required論理属性で、空ではない文字列の値の選択肢を選択しなければならないことを示します。
sizeコントロールがスクロールするリストボックスとして表示される場合(つまり、 multiple が指定されている場合)、この属性は一度に見えるべきリストの行数を表します。ブラウザーは、 select 要素をスクロールリストボックスとして提供する必要はありません。既定値は 0 です。
メモ: HTML 仕様書によると、 size 属性の初期値は 1 であるべきとされています。しかしながら、実際のところは、このことによっていくつかのウェブサイトを壊してしまうことがわかり、他のブラウザーでも現在そうしているものはなく、 Mozilla は当分の間、 Firefox でも 0 を返し続けることを選択しました。
デスクトップコンピューターでは、 <select> 要素に multiple 属性がついている場合に、複数の選択肢を選択する方法がいくつもあります。
マウスを使用すると、 Ctrl、Command、Shift キー(オペレーティングシステムによって異なります)を押しながらクリックすることで、複数の選択肢を選択または解除することができます。
警告: キーボードから連続していない複数の選択肢を選択する仕組みは、今のところ Firefox でしか動作しないようです。
macOS では、 Ctrl + ↑ および Ctrl + ↓ のショートカットが、 OS 既定の Mission Control および Application windows のショートカットと競合するため、動作させるためにはこれらをオフにしなければならないでしょう。
キーボードを使用して、連続した複数の選択肢を選択するには以下のようにします。
キーボードを使用して、連続していない複数の選択肢を選択するには以下のようにします。
<select> 要素は、従来は CSS を使って生産的にスタイル設定することが困難であったため、完全にカスタマイズ可能な select 要素が作成できる機能が導入されつつあります。
最新のカスタマイズ機能に対応していないブラウザー(またはそれらを使用できない古いコードベース)では、ボックスモデルや表示されるフォントの操作に限定されています。 appearance プロパティを使用して、システムの既定の appearance を削除することもできます。
しかし、従来の <select> 要素では、ブラウザー間で一貫した結果を得ることは困難です。完全に制御したいのであれば、スタイル設定をするのに優れた機能を備えたライブラリーを使用するか、非意味的要素や JavaScript や WAI-ARIA を使用して独自のドロップダウンメニューを実装することを検討してください。
:open 擬似クラスを使用することで、 <select> 要素が開いた状態(つまり選択肢のドロップダウンリストが表示されている状態)のスタイルを設定できます。これは複数行の <select> 要素(multiple 属性が設定されているもの)には適用されません。これらはドロップダウンではなくスクロール可能なリストボックスとしてレンダリングされる傾向があるため、開いた状態がありません。
<select> のスタイル設定についての従来の情報は、以下を参照してください。
<select> 内の <hr> は、純粋に装飾的なものとみなすべきです。なぜなら、現在、アクセシビリティツリー内に公開されておらず、支援技術にも公開されていないからです。
以下の例では、 3 つの選択肢があるドロップダウンメニューを生成し、既定で 2 番目の選択肢を選択状態にしておきます。
次の例では、ドロップダウンメニューをグループ化つきで作成し、<optgroup> と <hr> を使用して、ドロップダウン内のコンテンツをユーザーが理解しやすくしています。
以下の例はもっと複雑で、 <select> 要素で使用できる機能をもっと示しています。
次のことが分かるでしょう。
| フローコンテンツ、 記述コンテンツ、 対話型コンテンツ、 リスト化、 ラベル付け可能、 リセット可能、 送信可能なフォーム関連要素 |
従来の <select> 要素の場合、 0 個以上の <option> 要素、<optgroup> 要素、<hr> 要素。
カスタマイズ可能な select 要素の場合:
|
| なし。開始タグと終了タグの両方が必須です。 |
| 記述コンテンツを受け入れるすべての要素 |
| multiple 属性がなく、 1 よりも大きい size 属性がないならば combobox、それ以外の場合は listbox |
| multiple 属性がなく、 1 よりも大きい size 属性がないならば menu、それ以外の場合は、許可されている role はなし |
| HTMLSelectElement |
| HTML # the-select-element |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年11月9日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.