将背景颜色设置为 <option> in <select>



我正在尝试设置一个选择选项的背景色,如下所示:

<select>
<option class="yellow">Option 1</option>
<option class="blue">Option 2</option>
<option class="red">Option 3</option>
</select>

其中类将是这样的:CCD_ 1。其想法是,当显示下拉列表时,每个选项都将具有适当的背景颜色。

这似乎应该是一件简单的事情,但在这里呆了一个小时后,我发现了很多声称可以解决这个问题的答案,但它们实际上并不起作用。所有选项都具有默认背景色。

以下是一些在Mac上使用Chrome 83.0.4103.116和Safari 13.1时不适用的示例:

  • https://stackoverflow.com/a/43740774
  • https://stackoverflow.com/a/18092074(更改所选颜色有效,但更改选项颜色无效(
  • https://stackoverflow.com/a/12836286

他们确实可以在Mac上使用FF。

这可能与Mac上最新的Chrome和Safari兼容吗?Javascript解决方案可以。

根据对上述问题的评论。。。

我在Mac上使用最新的Chrome浏览器。

是的,有问题。(老实说,我真的很惊讶在我的Windows工作站上提供的链接可以工作。从历史上看,设计<select>和其他一些表单元素一直是一个白日梦。(

一些表单元素比其他表单元素更依赖于本机操作系统功能,<select>元素也是如此。请注意,一个完全没有样式的标准<select>在Mac上与在Windows或Linux上看起来非常不同。在这种情况下,听起来本机操作系统功能根本不支持这里的样式。

为了获得最大的兼容性,你最好的选择可能是使用JavaScript插件(如果你不反对使用jQuery,jQuery有很多插件,如果你已经在使用某些东西,其他框架也有其他选项(来显示现有<select>的风格化菜单。或者,如果你雄心勃勃,你可以自己写。但本机功能是操作系统的突发奇想,而且可能会持续一段时间。

我希望这对你有用。我在css中使用了#id选择器,它起作用了:

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<style type="text/css">
#red{
background-color: red;
}
#yellow{
background-color: yellow;
}
#green{
background-color: green;
}
</style>
<select>
<option id="red">Option 1</option>
<option id="yellow">Option 2</option>
<option id="green">Option 3</option>
</select>
</body>
</html>

为什么它在浏览器中不起作用。我尝试了同样的代码,它在我的浏览器中运行。

<select>
<option class="yellow">Option 1</option>
<option class="blue">Option 2</option>
<option class="red">Option 3</option>
</select>

和css代码如下:

.yellow{
background-color:yellow;
}
.blue{
background-color:blue;
}
.red{
background-color:red;
}

如果它仍然不起作用,那么我建议将您的选项包装在或标记中,并将背景色属性应用于它们。

最新更新