HTML <option> 元素
HTML <option>
元素用于定义在 <select>
,<optgroup>
或 <datalist>
元素中的项目。因此,<option>
可以表示 HTML 文档中弹出窗口和其他项目列表中的菜单项。
创建带有 4 个选项的选择列表:
<select>
<option value="volvo">沃尔沃</option>
<option value="saab">萨博</option>
<option value="mercedes">奔驰</option>
<option value="audi">奥迪</option>
</select>
特性
内容类别 | 无。 |
---|---|
允许的内容 | 文字,可能带有转义字符(例如 é )。 |
标签省略 | 必须有开始标签。如果该元素紧接着另一个 <option> 元素或 <optgroup> ,或者父元素没有更多内容,则结束标签是可选的。 |
允许的父元素 |
<select> ,<optgroup> 或 <datalist> 元素。 |
允许的 ARIA 角色 | 无 |
DOM 接口 | HTMLOptionElement |
属性
该元素包含了全局属性。
disabled
如果设置了该布尔属性,则该选项不可选中。通常,浏览器会将这种控件变成灰色,并且不会收到任何浏览事件,例如鼠标点击或与焦点相关的事件。如果未设置该属性,而且它的上级是禁用的 <optgroup>
元素,则该元素仍然是被禁用。
label
该属性是用于表示选项含义的文本。如果未定义 label
属性,则其值是元素文本内容的值。
selected
如果存在该布尔属性,表示该选项默认被选中。如果 <option>
元素是 <select>
元素的后代,并且没有设置 multiple
属性,则这个 <select>
元素只能有一个 <option>
有 selected
属性。
value
如果选择该选项,则该属性的内容表示要与表单一起提交的值。如果省略该属性,则该值取自选项元素的文本内容。
事件属性
<option>
元素支持所有 HTML事件属性。
使用说明
<option>
元素可以在不带有任何属性的情况下使用,但是您通常需要使用 value
属性,此属性会指示出被送往服务器的内容。
请与 <select>
元素配合使用此元素,否则这个元素是没有意义的。
如果列表选项很多,可以使用 <oprgroup>
元素对相关选项进行组合。
规范
规范 | 状态 | 备注 |
---|---|---|
HTML Living Standard<option> 的定义 |
现行的标准 | - |
HTML5<option> 的定义 |
推荐 | - |
HTML 4.01 Specification<option> 的定义 |
推荐 | 初始定义 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 1 | 支持 | 1 | 支持 | 支持 | 支持 |
disabled |
1 | 支持 | 1 | 支持 | 支持 | 支持 |
label |
1 | 支持 | 1123 | 支持 | 支持 | 支持 |
selected |
1 | 支持 | 1 | 支持 | 支持 | 支持 |
value |
1 | 支持 | 1 | 支持 | 支持 | 支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 支持 | 1 | 支持 | 支持 | 支持 |
disabled |
支持 | 支持 | 支持 | 1 | 支持 | 支持 | 支持 |
label |
支持 | 支持 | 支持 | 11 | 支持 | 支持 | 支持 |
selected |
支持 | 支持 | 支持 | 1 | 支持 | 支持 | 支持 |
value |
支持 | 支持 | 支持 | 1 | 支持 | 支持 | 支持 |
1. 如果元素的内容为空,则 Firefox 不会将 label
属性的值显示为选项文本。参见 bug 40545。
2. 曾经,Firefox 允许键盘和鼠标事件从 <option>
元素向父级 <select>
元素冒泡,尽管这种行为在许多浏览器中不一致。为了获得更好的 Web 兼容性(以及出于技术的原因),当 Firefox 处于多进程模式并且 <select>
元素显示为下拉列表时,如果 <select>
以内联方式呈现,并且它具有 multiple
属性,或者 size
属性呢的值大于 1
,则存在该行为。观察元素事件时,您不应该观察 <option>
元素,而应该是 <select>
元素。有关详细信息,请参阅 bug 1090602。
3. 当 Mozilla 向 Firefox 引入了专用内容线程时(通过 Electrolysis 或称为 e10s 项目),暂时删除了对 <option>
元素的样式支持。从 Firefox 54 开始,您可以通过 CSS 属性的颜色和背景色再次为 <option>
元素设置样式。有关更多信息,请参阅 bug 910022。请注意,由于缺乏对比度,这在 Linux 中仍然被禁用(有关该方面的进展,请参阅 bug 1338283)。