如何设置选择标签的选项元素的样式?

Mik*_*ike 46 css html-select google-chrome

我正在尝试在Google Chrome option中的select下拉菜单中设置a的样式.它适用于除IE9和Chrome之外的所有浏览器.

option.red {
    background-color: #cc0000; 
    font-weight: bold; 
    font-size: 12px; 
    color: white;
}
Run Code Online (Sandbox Code Playgroud)
<select name="color">
    <option class="red" value="red">Red</option>
    <option value="white">White</option>
    <option value="blue">Blue</option>
    <option value="green">Green</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如果不使用JavaScript,有没有办法为Google Chrome中的选项设置样式?选择后,不显示背景颜色.

小智 24

遗憾的是,<option>除了color和之外,WebKit浏览器还不支持标签样式background-color.

使用最广泛的跨浏览器的解决方案是使用<ul>/ <li>使用CSS样式.像Bootstrap这样的框架做得很好.

  • 这不完全正确.它实际上是依赖于操作系统的下拉支持的样式集.有趣的是,样式选项似乎在Windows 7/8中有效,我可以肯定地说它在OS X上不起作用(10.8). (14认同)

Pie*_*NAY 11

这是一个选择(从浏览器开发人员或W3C,我找不到任何关于样式选择选项的W3C规范),不允许选择样式选项.

我怀疑这是为了与原生选择列表保持一致.
(例如考虑移动设备).

我想到了3种解决方案:

  • 使用Select2实际上将你的选择转换为uls(允许很多东西)
  • 将您的selects 拆分为多个,以便对值进行分组
  • 分成 optgroup

  • 你是对的.明确的选择是在CSS2时代做出的,因为当时浏览器使用平台UI小部件来呈现浏览器UI小部件,平台UI小部件通常支持比CSS想要的更有限的样式.今天,FF和IE已经开始自我渲染所有控件; 手机浏览器除了移动FF都有这个问题; Chrome正在实现这一目标; 桌面Safari和Opera落后了. (3认同)