css - 是否可以仅使用 css 更改选择空颜色

标签 css

<select>
  <option disabled selected>=select=</option>
  <option>1</option>
</select>


当用户看到「=select=」时,我想要的颜色是灰色。
当选择「1」时,颜色为黑色,如下图:

enter image description here

select { color: black; }

select:empty { color: gray; }
//invalid

是否可以只用 css 改变颜色?谢谢!

最佳答案

您可以使用函数更改 select 元素 onchangeclass:

var myselect = document.getElementById("select1");

function colourFunction() {
  var colour = myselect.options[myselect.selectedIndex].className;
  myselect.className = colour;
}

// Call function on load:
colourFunction();
.color_gray {
  color: gray;
}

.color_black {
  color: black;
}
<select id="select1" onchange="colourFunction()">
  <option disabled selected class='color_gray'>=select=</option>
  <option class='color_black'>1</option>
</select>

请注意,我还在 option 元素上使用了彩色的 classes。但这不是强制性的。

希望对您有所帮助。

关于css - 是否可以仅使用 css 更改选择空颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51079480/

相关文章:

javascript - 有没有办法根据 css 属性忽略某些 transitionend 事件?

html - css字体大小继承不适用

javascript - 将溢出的 div 滚动到 Angular 元素的垂直中心(5)

html - Wordpress:将多个类别名称和标签名称从页面添加到 <body>

css - Bootstrap header 中的垂直对齐

html - 扩展 float div 高度以填充父 div

css - 有没有像:is-showing-ellipsis?这样的css选择器

javascript - 如何动态地将图案图像添加到 svg 中?

html - 对齐 parent 之外的 child

javascript - ng-mouseover ng-mouseout 不工作