【发布时间】:2020-10-24 07:44:04
【问题描述】:
一般信息
尝试制作一个自定义设计的选择列表,其中第一个选项是默认选项,不应选择(禁用)。
问题
我可以很好地更改可用选项的背景颜色。但是,默认禁用选项在下拉菜单中具有灰色背景。将鼠标悬停在其上并再次离开后,颜色将变为应有的颜色。
这似乎是使用选择和禁用选项组合的特定问题。如果您删除 disabled 和/或 selected 属性,问题就消失了。
我该如何解决这个问题?
我尝试自己解决问题的方法
我尝试根据这个问题更改选项的悬停颜色:Change Select List Option background colour on hover
我认为这可能与此有关。然而,那个问题的答案甚至没有用。
我的代码:
body {
background: #41608c;
}
select {
font-family: 'Source Sans Pro', sans-serif;
font-weight: 300;
font-size: 16px;
width: 300px;
height: 64px;
background: rgba(0, 0, 0, 0.4);
border: none;
margin-top: 1px;
color: rgba(255, 255, 255, 1);
appearance: none;
}
select option {
background: rgba(46, 61, 87, 1);
}
<body>
<select>
<option selected="selected" disabled>Default value</option>
<option>Value 1</option>
<option>Value 2</option>
</select>
</body>
【问题讨论】:
-
你不应该在同一个选项上选择和禁用。如果您真的想阻止用户再次使用默认选项,您可以在更改时禁用它。这是一个示例:jsfiddle.net/1nfyb9wt
-
@JensIngels 谢谢。我知道如何解决这个问题。我什至可以用标签来解决它。我只是想知道这是怎么回事。某些东西正在为禁用的选项提供默认背景颜色。我最好的猜测是这是由操作系统完成的。但如果这是真的,那么为什么在悬停选项后它会“修复”自己?我开始怀疑这是否实际上是浏览器与操作系统的错误。
-
使用标签可能是你最好的选择。