仕様
SELECT要素は、
一連のオプションから
選択するための
コントロールを
表します。
select | 一連のオプションから |
---|---|
カテゴリ |
|
種類 | 通常要素 |
この要素を 使用できる 状態 | フレージング |
許可されて いる内容 | 0個以上の option要素, optgroup要素, およびスクリプトを |
属性 | グローバル |
text / html での タグの省略 | 省略できません。 |
許可されて いるARIA | size属性の値が1より大きいか multiple属性が存在する場合は、なし[既定値 : listbox] それ以外の場合は、menu [既定値 : combobox] |
DOM インター フェイス | HTMLSelectElement
|
レンダリング | フォーム
initial は、プロパティの初期値 (または既定値) を設定する指定なので、 letter-spacing: normal; word-spacing: normal; line-height: normal; text-transform: none; text-indent: 0; text-shadow: none; text-align: start; と置き換えて読んで頂くと判り易いかと思います。 CSS を大雑把に読むと、 テキストの字間のスペースは通常の字間です。 タグや単語の間隔は普通です。 行ボックスの高さはユーザーエージェントに依存します。 テキストを大文字表記に変換しません。 字下げは 0 です。 テキストに影を追加しません。 水平方向の配置をインラインコンテンツは行ボックスの左辺に寄せられます。 width および height プロパティには、コンテンツ、パディング、境界線の領域が含まれますが、マージンは含まれません。 などになります。 |
参加 コンテキスト | インライン |
確立 コンテキスト | インライン |
select要素は、一連のオプションから選択するためのコントロールを表します。select要素のオプションのリストは、select要素のすべての option要素の子と、select要素のすべての optgroup要素の子のすべての option要素の子から構成されています。
| |
使用可能な箇所
フレージングコンテンツを
受け入れる要素に
配置できます。
select要素は、フレージング
フレージング
インタラクティブ
ラベル付け可能な要素なので、他にラベル付け可能な要素がある label要素には配置できません。
フォーム関連要素ですが form属性で要素を form要素に関連付ける事ができるので、form要素の子孫に配置する必然はありません。 form要素の子孫でもなく、form属性での関連付けもない記述は、用途としては不適切です。 (このサイトでの例示では、送信等の安全の為に意図的に form要素とフォーム関連要素との関連付けを避けている箇所もあります。)
<pre>
<select>
<option>
abc123 </option> <option>
def456 </option> </select>
</pre>
フレージング
配置できるコンテンツ
option要素,
optgroup要素を
配置できます。
select要素は、0個以上の option要素, optgroup要素, およびスクリプトを
<select>
<option>
abc123 </option> <option selected>
def456 </option> </select>
select要素には、0個以上の option要素, optgroup要素, およびスクリプトを
属性
form属性
<select form=
"ifmForm" name= "nseSelect"> <option>
abc123 </option> <option>
def456 </option> </select>
<form id=
"ifmForm" action= "./fmreceive.htm"> <button name=
"nbtSender" value= "./fmselect.htm">ボタン</button> <br>受信用の<br>ページへ
</form>
form属性は、form要素の id属性値を設定します。要素を form要素に関連付けます。省略したときは、最も近い祖先の form要素に関連付けられます。
name属性
<form action=
"./fmreceive.htm"> <select name=
"nseSelect"> <option>
abc123 </option> <option>
def456 </option> </select>
<select>
<option>
def123 </option> <option>
abc456 </option> </select>
<button name=
"nbtSender" value= "./fmselect.htm">ボタン</button> <br>受信用の<br>ページへ
</form>
name属性は、要素の名前を指定します。フォームの送信とform.elements APIで使用する要素の名前です。
disabled属性
<form action=
"./fmreceive.htm"> <select name=
"nseSelect" disabled> <option>
abc123 </option> <option>
def456 </option> </select>
<button name=
"nbtSender" value= "./fmselect.htm">ボタン</button> <br>受信用の<br>ページへ
</form>
disabled属性は、ユーザーがそのコントロールを利用できないことを示す論理属性です。変更できないだけでなく、送信もできません。
autocomplete属性
<form action=
"./fmreceive.htm"> <select name=
"nseSelect" autocomplete= "on"> <option>
abc123 </option> <option>
def456 </option> </select>
<button name=
"nbtSender" value= "./fmselect.htm">ボタン</button> <br>受信用の<br>ページへ
</form>
autocomplete属性は、入力欄が提供する自動補完機能の種類を示します。 関連付けられた form要素の autocomplete属性によって既定値が指定されます。form要素の autocomplete属性それ自体の既定値は on です。 on はブラウザーはユーザーが以前入力した値を元に、値の自動補完を行うことができます。
required属性
<form action=
"./fmreceive.htm"> <select name=
"nseSelect" required> <option label=
"label"></option> <option>
abc123 </option> <option>
def456 </option> </select>
<button name=
"nbtSender" value= "./fmselect.htm">ボタン</button> <br>受信用の<br>ページへ
</form>
required属性は、ユーザーはフォームを送信する前に値を入力する必要があることを示す論理属性です。
select要素に required属性が指定されていて、multiple属性が指定されておらず、表示サイズが1の場合、select要素にはプレースホルダーラベルオプションが必要です。
size属性
<form action=
"./fmreceive.htm"> <select name=
"nseSelect" size= "2"> <option>
abc123 </option> <option>
def456 </option> <option>
ghi789 </option> </select>
<button name=
"nbtSender" value= "./fmselect.htm">ボタン</button> <br>受信用の<br>ページへ
</form>
size属性は、ユーザーに表示するオプションの数を指定します。size属性は、指定する場合、ゼロより大きい有効な非負の整数である値を持つ必要があります。
multiple属性
<form action=
"./fmreceive.htm"> <select name=
"nseSelect" multiple> <option>
abc123 </option> <option>
def456 </option> </select>
<button name=
"nbtSender" value= "./fmselect.htm">ボタン</button> <br>受信用の<br>ページへ
</form>
multiple属性は、ユーザーが複数の値を指定できるかどうかを示す論理属性です。
気を付ける点
フォーム関連要素
フォーム関連要素であり送信が関わりますが、それぞれの処理のタイミングには注意が必要です。
multiple
multiple属性が指定されて複数の値が選択された時は、1項目に複数の値が付くのではなく同じ項目名で複数の項目が送信されます。 JavaScriptで連想配列で処理すると名称が同じデータが複数存在するという事で上書きされてしまうので考慮が必要です。
<form action=
"./fmreceive.htm"> <select name=
"nseSelect" multiple> <option selected>
abc123 </option> <option selected>
def456 </option> </select>
<button name=
"nbtSender" value= "./fmselect.htm">ボタン</button> <br>受信用の<br>ページへ
</form>
CSSリセット
select {
font-family: inherit;
font-size: 100%;
line-height: 1.15;
margin: 0;
text-transform: none;
}
normalize.css というリセットCSS の一部で、すべてのブラウザでフォントスタイルを変更します。
FirefoxおよびSafariでマージンを削除します。
Firefoxのテキスト変換の継承を削除します。
詳細は理解していないのですが、いろいろとバグ等の対応も含んでいる様なので、利用する事をお勧めします。
付記
次は、「option要素」です。
select要素のオプション、または datalist要素の候補リストの一部としてのオプションを表す option要素に関してのページです。
前のページの「textarea要素」はこちらです。
上位のページの「フォーム」はこちらです。