7

我想为我的选项元素添加类。在 HTML 选项元素中添加类属性是否有效?

4

4 回答 4

16

是的,它是有效的。

来自W3Schools网站:

The <option> tag also supports the Global Attributes in HTML.

属性是其中class的一部分。请注意,option标签通常存在与您使用的浏览器有关的格式问题,因此对其进行样式设置可能有点棘手。

编辑:自从我写了这个答案后,我注意到W3Schools 可能不是最可靠优质信息来源。先前的答案完全没有错误,但它来自已被证明有些不一致/不完整的来源。因此,我认为我还应该在此处附加此主题的更官方链接。

于 2013-08-26T07:23:49.117 回答
3

根据HTML 4.01 建议的相关部分,该class属性是有效的。HTML5 草案,包括 HTML5 CR,甚至更加宽松:它们允许在任何元素上optionclass

我的猜测是,您真正想问的是您是否可以使用属性和 CSS对某些option元素进行不同于其他元素的样式设置。class那么答案是这取决于浏览器——不是因为识别class属性的问题,而是因为在下拉列表中的样式方面,其实现部分不受 CSS 的影响。

于 2013-08-26T08:04:36.487 回答
2

是的!

在 HTML 中,向元素[ 1 ]class添加属性是有效的。option

然而...

但是,对于CSS 的影响,可用性是有限的。尤其是涉及到option标签时,因为它受操作系统的表单控制处理程序[ 2 ]的约束。这就是为什么下面的代码示例实际上不能在所有浏览器上运行的原因。

HTML
<select>
    <option>Centaur</option>
    <option class="colored">Unicorn</option>
</select>
CSS
.colored {
    background-image: url('my-colorful-background.png'); // e.g.: Apple doesn't recognize this rule
}

对于JavaScript 含义(w/jQuery),当涉及到 DOM 对象时,可用性得到完全支持,但仍受上述 CSS 含义的限制。因此,像这样的 DOM 操作代码......将起作用。

HTML
<select>
    <option>Centaur</option>
    <option class="colored">Unicorn</option>
</select>
带有 jQ​​uery 的 JavaScript
var label = jQuery('.colored').html();
console.log( label ); // outputs Unicorn

参考

  1. W3C - HTML 4.01 规范表单、SELECT、OPTGROUP 和 OPTION 元素
  2. MDN -样式化 HTML 表单,为什么使用 CSS 样式化表单小部件如此困难?
于 2017-10-16T23:43:26.403 回答
1

class属于全局属性。任何元素都可以拥有它。

来源:http ://www.w3.org/wiki/HTML/Attributes/_Global

于 2013-08-26T07:23:24.843 回答