Html 两个浏览器显示两种不同的文本高亮显示颜色

Html 两个浏览器显示两种不同的文本高亮显示颜色,html,css,Html,Css,我只是定制了我网站的部分内容,并决定改变突出显示的颜色。在Brave浏览器(基于铬)中,颜色被视为预期的颜色,但我在Safari上查看了颜色看起来不同的地方。 这是我的CSS中的代码片段: ::selection { color: black; background-color: #aaaaff; } ::-moz-selection { color: black; background-color: #aaaaff; } 提供了详细说明差异的图片。 勇敢的

我只是定制了我网站的部分内容,并决定改变突出显示的颜色。在Brave浏览器(基于铬)中,颜色被视为预期的颜色,但我在Safari上查看了颜色看起来不同的地方。
这是我的CSS中的代码片段:

::selection {
    color: black;
    background-color: #aaaaff;
}
::-moz-selection {
    color: black;
    background-color: #aaaaff;
}
提供了详细说明差异的图片。
勇敢的浏览器(正确)


狩猎


有人知道为什么会发生这种情况,以及如何修复这种情况,使高亮显示的颜色在所有浏览器上都相同吗?

要在Safari浏览器中工作,需要添加一点不透明度。您可以添加rgba或hsla,而不是十六进制代码。它很好用,我在Safari查过了!如果将不透明度设置为100%,则不起作用,但如果设置为99%,则效果良好

RGBA颜色:

::selection {
  color: black;  
  background-color: rgb(168 168 255 / 99%);
}
::-moz-selection {
  color: black;  
  background-color: rgb(168 168 255 / 99%);
}
HSLA颜色:

::selection {
  color: black;
  background-color: hsl(240deg 100% 83% / 99%);
}
::-moz-selection {
  color: black;
  background-color: hsl(240deg 100% 83% / 99%);
}

我相信,要使选择颜色在所有浏览器中都保持一致,您需要对颜色使用轻微的不透明度。类似于rgba(100100255,0.9)讽刺的是,铬曾经有过这个问题,但那是在闪烁叉发生之前。不过,没有说这就是原因。但在Safari中看到这一点感到惊讶:选择的行为现在在css-pseudo-4中得到了很好的定义。我的猜测是Safari错误地将这种效果应用于高亮显示的文本,而规范规定它只应应用于高亮显示的替换元素(如图像)。@Dominik:是的,0.99也适用。看到我刚才链接到的问题了。谢谢大家的回答@BoltClock此解决方案(定义不透明度<1)是用作标准还是我的情况是唯一的,通常不需要?