更改选择框选项背景颜色

ngp*_*und 110 html css html-select background-color

我有一个select盒子,我试图select在单击该框时更改选项的背景颜色并显示所有选项.

见小提琴

HTML:

<select>
    <option val="">Please choose</option>
    <option val="1">Option 1</option>
    <option val="2">Option 2</option>
    <option val="3">Option 3</option>
    <option val="4">Option 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

CSS:

select{
    margin:40px;
    background: rgba(0,0,0,0.3);
    color:#fff;
    text-shadow:0 1px 0 rgba(0,0,0,0.4);
}
Run Code Online (Sandbox Code Playgroud)

udi*_*idu 145

你需要把background-coloroption标签,而不是select标签...

select option {
    margin: 40px;
    background: rgba(0, 0, 0, 0.3);
    color: #fff;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
}
Run Code Online (Sandbox Code Playgroud)

如果要为每个option标签设置样式..使用css attribute选择器:

select option {
  margin: 40px;
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
}

select option[value="1"] {
  background: rgba(100, 100, 100, 0.3);
}

select option[value="2"] {
  background: rgba(150, 150, 150, 0.3);
}

select option[value="3"] {
  background: rgba(200, 200, 200, 0.3);
}

select option[value="4"] {
  background: rgba(250, 250, 250, 0.3);
}
Run Code Online (Sandbox Code Playgroud)
<select>
  <option value="">Please choose</option>
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
  <option value="3">Option 3</option>
  <option value="4">Option 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

  • 在使用Windows操作系统的Chrome上不适用于我 (12认同)
  • 使用rgba不起作用,至少在Chome v.27中没有用. (10认同)
  • 不适用于 Firefox,也不适用于 Chromium (Linux Antergos) (9认同)
  • 您可以使用CSS`:nth-​​child(1..n)`选择器代替. (5认同)
  • 您可能不应该使用属性选择器。您可能想使用第n个孩子,或者给每个选项一个类。 (2认同)
  • 这对我来说在当前版本的 chrome 中不起作用 (2认同)

rfo*_*foo 19

我不知道你是否考虑过它,但如果你的应用程序是基于着色各种项目分组,你应该使用<optgroup>标签和类进行进一步的参考.例如:

<select>
    <optgroup label="Numbers" class="green">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </optgroup>

    <optgroup label="Letters" class="blue">
        <option value="a">A</option>
        <option value="b">B</option>
        <option value="c">C</option>
    </optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)

然后在你的文档的头部写这样的CSS:

<style type="text/css">
    .green option{
        background-color:#0F0;
    }

    .blue option{
        background-color:#00F;
    }
</style>
Run Code Online (Sandbox Code Playgroud)


Jay*_*tel 15

是的你可以通过反对的方式设置这个,

option:not(:checked) { }
Run Code Online (Sandbox Code Playgroud)

检查一下 demo jsFiddle

HTML

<select>
    <option val="">Please choose</option>
    <option val="1">Option 1</option>
    <option val="2">Option 2</option>
    <option val="3">Option 3</option>
    <option val="4">Option 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

CSS

select{
    margin:40px;
    background: rgba(0,0,0,0.3);
    color:#FFF;
    text-shadow:0 1px 0 rgba(0,0,0,0.4);
}
option:not(:checked) { 
    background-color: white; 
    color:#000;
}
Run Code Online (Sandbox Code Playgroud)


dah*_*765 5

在此输入图像描述

类似于一些答案,但没有真正说明,是将一个类添加到实际的选项标签并使用css类...这对我来说没有问题在IE上工作(参见上面的ss).

<select id="reviewAction">
<option class="greenColor">Accept and Advance Status</option>
<option class="redColor">Return for Modifications</option>
</select>
Run Code Online (Sandbox Code Playgroud)

CSS:

.greenColor{
    background-color: #33CC33;
}
.redColor{
    background-color: #E60000;
}
Run Code Online (Sandbox Code Playgroud)