gpt4 book ai didi

css - 在 Firefox 中设置没有选项的选择框样式

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:28 25 4
gpt4 key购买 nike

我正在尝试将选择框的样式设置为较暗的主题。问题是在 Firefox 中,选项框中选项的背景和颜色也会根据我的样式发生变化,这是我绝对不希望看到的。这是代码:

<!DOCTYPE html>
<html>
<head>
<title></title>

<style type="text/css">
body {
background: black;
}
select {
background-color: rgba(0, 0, 0, 0.15);
color: rgba(255, 255, 255, 0.85);
border: 1px solid #111417;
}
</style>
</head>
<body>
<select>
<option value="0">Select car</option>
<option value="1">Audi</option>
<option value="2">BMW</option>
</select>
</body>
</html>

这是选项框的截图:

Image

由于样式的应用,对比度很低。它在 Chrome 中完美运行,其中的选项框与以前相同。我该如何解决这个问题?

最佳答案

测试和发现

我做了一些实验,发现当用 rgba(0, 0, 0, 0.15) 指定时,Firefox 不使用选择下拉菜单的背景颜色。功能,但是当您使用 rgb(0, 0, 0) 时会这样做, #FFFFFFblack .带有一些测试的片段:

body {
background: black;
color: white;
}

select {
width: 200px;
}

.select1 {
background-color: rgba(0, 0, 0, 0.15);
color: rgba(255, 255, 255, 0.85);
border: 1px solid #111417;
}

.select2 {
background-color: rgb(0, 0, 0);
color: rgba(255, 255, 255, 0.85);
border: 1px solid #111417;
}

.select3 {
background-color: black;
color: rgba(255, 255, 255, 0.85);
border: 1px solid #111417;
}

.select4 > option {
color: rgba(255, 255, 255, 0.85);
}
.select4 > option:nth-child(2) {
background: rgba(0, 0, 0, 0.15);
}
.select4 > option:nth-child(3) {
background: rgba(0, 0, 0);
}
.select4 > option:nth-child(4) {
background: black;
}
<h2>
Background: <code>rgba(0, 0, 0, 0.15)</code>
</h2>
<select class="select1">
<option value="0">Select car</option>
<option value="1">Audi</option>
<option value="2">BMW</option>
</select>

<h2>
Background: <code>rgba(0, 0, 0)</code>
</h2>
<select class="select2">
<option value="0">Select car</option>
<option value="1">Audi</option>
<option value="2">BMW</option>
</select>

<h2>
Background: <code>black</code>
</h2>
<select class="select3">
<option value="0">Select car</option>
<option value="1">Audi</option>
<option value="2">BMW</option>
</select>

<h2>
Backgrounds on <code>&lt;option&gt;</code> Tags
</h2>
<select class="select4">
<option selected value="default">Default</option>
<option value="0">background: rgba(0, 0, 0, 1.5)</option>
<option value="1">background: rgb(0, 0, 0)</option>
<option value="2">background: black</option>
</select>

在 OS X 上的 Firefox 69 和 70(分别为当前稳定版和夜间版)中,第一个选择具有浅色背景和白色文本颜色(如您的屏幕截图所示),而第二个和第三个具有深色背景和指定的白色文本。

我不确定这是错误还是故意的。也许半透明的背景会给系统下拉带来麻烦。

有趣的是,Firefox 显然也允许样式化 <option>直接打标签。第四个示例的第二个、第三个和第四个选项具有不同的背景。同样,除了使用 rgba 的那个以外,其他所有的都作为 intendend。

在 Chrome 和 Safari 中,所有示例的下拉菜单看起来都一样,因为它们不允许对下拉菜单进行任何样式设置。

解决方法

您的问题的解决方法是使用 rgb 设置选择背景而不是 rgba , 而不是你会得到一个带有白色文本的深色下拉菜单,这将符合你的主题。

如果你真的需要使用 rgba 作为选择背景,你也可以设置 color将选项标签设置为黑色,以便与 Firefox 中的白色背景形成更好的对比。 Chrome 和 Safari 将完全忽略这些选项。但是,您需要在新的 Firefox 版本发布时对其进行测试。在 OS X 的 Chrome 和 Safari 上,如果您使用深色系统主题,您会看到深色主题的下拉菜单。如果 Firefox 效仿,但仍然允许您覆盖选项颜色,这将使您在深色背景上获得深色文本。

在任何情况下,您都需要检查您的解决方案在所有浏览器中的表现,因为对样式选择元素及其下拉列表的支持因供应商而异。

关于css - 在 Firefox 中设置没有选项的选择框样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57852069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com