<select>
HTML <select>元素表示一个控件,提供一个选项菜单:菜单内的选项为<option>
,可以由<optgroup>
元素分组。选项可以被用户预先选择。
浏览器支持
![]() | ![]() | ![]() | ![]() | ![]() |
所有主流浏览器都支持<select> 标签。 |
示例
创建带有 4 个选项的选择列表:
<select> <option value="volvo">volvo</option> <option value="saab">saab</option> <option value="mercedes">mercedes</option> <option value="audi">audi</option> </select>
标签定义及使用说明
<select>
元素用来创建下拉列表。
<select>
元素中的<option>标签定义了列表中的可用选项。
<select>
元素是一种表单控件,可用于在表单中接受用户输入。
技术摘要
Content categories | flow content,段落内容元素,交互内容元素,listed,labelable,resettable,andsubmittableform-associatedelement |
---|---|
Permitted content | Zero or more<option> or<optgroup> elements. |
Tag omission | 不允许,开始标签和结束标签都不能省略。 |
Permitted parents | any element that accepts 段落内容元素 |
Permitted ARIA roles | menu |
DOM接口 | HTMLSelectElement |
用 CSS 美化
众所周知,<select>
元素很难用CSS进行高效的设计。你可以影响任何元素的某些方面-例如,操纵框模型,显示的字体等,你可以使用appearance
属性来删除默认的系统外观。
但是,这些属性不会在浏览器之间产生一致的结果,并且很难在列中将不同类型的表单元素相互排列。<select>
元素的内部结构复杂,难以控制。如果你想获得完全控制,你应该考虑使用一个具有良好设施的库来构建窗体小部件(例如jQuery UI),或者尝试使用非语义元素,JavaScript和WAI-ARIA滚动自己的下拉菜单来提供语义。
属性
包括下列全局属性。
autocomplete
DOMString
提供用户代理自动完成功能的提示。有关完整值的完整列表以及有关如何使用自动完成的详细信息,请参阅HTML自动完成属性。autofocus
这个属性能够让一个对象在页面加载的时候获得焦点。在一个页面上下文中,只有一个对象可以有这个属性,并且是布尔值(true 或者 false).disabled
这个布尔值的属性表明一个用户是否可以操控该表单对象。如果这个属性没有被明确定义,则从它的父元素继承,例如fieldset
;如果没有父元素设置disabled
属性,那么默认该表单对象 enabled.form
select所关联的form表单(它的"表单拥有者").如果这个属性被明确定义,那么它的值一定是在同一个document中表单ID.这样能够让你把select标签放在任何的位置,不仅限于作为form表单的后代元素.multiple
这个布尔值的属性标记select是否可以多选。默认是单选.name
控件名称required
HTML5新增
规定select的值不能为空(布尔值).size
如果控件显示为滚动列表框,则此属性表示为控件中同时可见的行数。浏览器不需要将选择元素呈现为滚动列表框。默认值为0
提示:根据HTML5规范,默认值应该为1;但是,在实践中,这样会影响到一些网站,同时其它浏览器也没有那么处理,所以Mozilla 在Firefox中选择继续使用默认值 0 .
属性 | 值 | 描述 |
---|---|---|
autofocus HTML5新增 | autofocus | 规定在页面加载时下拉列表自动获得焦点。 |
disabled | disabled | 当该属性为 true 时,会禁用下拉列表。 |
form HTML5新增 | form_id | 定义 select 字段所属的一个或多个表单。 |
multiple | multiple | 当该属性为 true 时,可选择多个选项。 |
name | name | 定义下拉列表的名称。 |
required HTML5新增 | required | 规定用户在提交表单前必须选择一个下拉列表中的选项。 |
size | number | 规定下拉列表中可见选项的数目。 |
HTML 4.01 与 HTML 5 之间的差异
HTML 5 有一些新的属性,同时不再支持一些 HTML 4.01 的属性。
全局属性
<select>
标签支持HTML 的全局属性。
事件属性
<select>
标签支持HTML 的事件属性。
例子
<select> <option value="volvo">volvo</option> <option value="saab">saab</option> <option value="opel">opel</option> <option value="audi">audi</option> </select>
<!-- the second value will be selected initially --> <select name="select"> <option value="value1">value 1</option> <option value="value2" selected>value 2</option> <option value="value3">value 3</option> </select>