我们可以在option元素中添加class属性吗?

时间:2013-08-26 07:20:35

标签: html attributes html-select

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

4 个答案:

答案 0 :(得分:14)

是的,它是有效的。

来自W3Schools网站:

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

class属性所属的属性。请注意,option标记通常会出现与您正在使用的浏览器有关的格式问题,因此设置样式可能会有点棘手。

编辑:自从我写了这个答案以来,我注意到{em} 信息的W3Schools probably isn't the most reliable source。之前的答案完全没有错,但它来自一个已被证明有些不一致/不完整的来源。因此,我认为我还应该在此主题here附加一个官方链接。

答案 1 :(得分:2)

根据HTML 4.01建议书的relevant partclass属性对option有效。 HTML5草稿(包括HTML5 CR)更加宽松:它们允许class字面on any element

我的猜测是,您真正想问的是,您是否可以使用option属性和CSS来区分某些class元素与其他元素的区别。然后答案是,这取决于浏览器 - 不是由于识别class属性的问题,而是由于实现,在下拉列表中的样式项方面部分免受CSS。

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

是的!

在HTML中,向/// Default.aspx.cs methods : protected void Page_Load(object sender, EventArgs e) { if (! Cookies.CookieExist("kuki")) { Cookies.CreateCookie("kuki"); } Fill(); } private void Fill() { string a = Cookies.GetCookieValue("kuki", "key"); if (!a.Contains("data")) { return; } // codes for a } protected void ButtonAdd_Click(object sender, EventArgs e) { if (TextBox1.Text != string.Empty) { Cookies.InsertCookie("kuki", "key", TextBox1.Text); } } /// Cookie class methods: public static void InsertCookie(string Cookie, string Key, string Data) { HttpCookie Kuki = HttpContext.Current.Request.Cookies[Cookie]; Kuki[Key] = Data; HttpContext.Current.Response.SetCookie(Kuki); } public static bool CookieExist(string Cookie) { HttpCookie cookie = HttpContext.Current.Request.Cookies[Cookie]; if (cookie == null) { return false; } else { return true; } } public static void CreateCookie(string Cookie) { HttpCookie cookie = new HttpCookie(Cookie); cookie.Expires = DateTime.Now.AddYears(1); HttpContext.Current.Response.Cookies.Set(cookie); } public static string GetCookieValue(string CookieName, string CookieKey) { HttpCookie cookie = HttpContext.Current.Request.Cookies[CookieName]; try { if (cookie != null) { return cookie[CookieKey].ToString(); } else { return ""; } } catch (Exception) { return ""; } } 元素 [1] 添加class属性是有效的。

然而...

对于 CSS含义,但可用性有限。特别是涉及option标记时,因为它受操作系统的表单控制处理程序 [2] 的约束。这就是为什么下面的代码示例不会实际适用于所有浏览器的原因。

HTML
option
CSS
<select>
    <option>Centaur</option>
    <option class="colored">Unicorn</option>
</select>

对于 JavaScript含义(w / jQuery),当涉及到DOM对象时,完全支持可用性。像这样的DOM操作代码的原因......将起作用。

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

参考

  1. W3C - HTML 4.01 SpecificationForms, The SELECT, OPTGROUP, and OPTION elements
  2. MDN - Styling HTML forms, Why is it so hard to style form widgets with CSS?