Css 如何设置自定义::选择样式,但保持浏览器默认的文本选择颜色?

Css 如何设置自定义::选择样式,但保持浏览器默认的文本选择颜色?,css,Css,只是遇到了一些令人惊讶的事情。如果您这样做: footer::selection{ 颜色:白色; } …它还会删除高亮显示文本的浏览器默认背景色。它的行为就像您还设置了背景色:透明。(请参阅下面的演示。) 问题:在设置自定义:选择时,如何保留或恢复系统默认值文本选择背景色 (这列出了不同系统上使用的各种选择背景颜色。但我不想只选择一种,我希望它只是当前系统的默认颜色。) 演示: 正文{ 背景:海军; 颜色:灰色; } p、 自定义::选择{ 颜色:白色; } 常规段落 文本颜色在::sele

只是遇到了一些令人惊讶的事情。如果您这样做:

footer::selection{
颜色:白色;
}
…它还会删除高亮显示文本的浏览器默认背景色。它的行为就像您还设置了
背景色:透明
。(请参阅下面的演示。)

问题:在设置自定义
:选择时,如何保留或恢复系统默认值文本选择
背景色

(这列出了不同系统上使用的各种选择背景颜色。但我不想只选择一种,我希望它只是当前系统的默认颜色。)

演示:

正文{
背景:海军;
颜色:灰色;
}
p、 自定义::选择{
颜色:白色;
}
常规段落


文本颜色在::selection中更改的段落

此行为已编入规范:

UA必须在作者未指定
颜色
背景色
的情况下,为
:选择
使用自己的突出显示颜色

(直到去年才改为“必须”之前,这里一直说“应该”。没有任何浏览器实现了某种版本的
::selection
,但仍然没有遵循此规则。)

系统颜色仅作为用户定义的值(可能只是系统默认值,也可能不是系统默认值)暴露在CSS中,而不是系统定义的默认值,因此无法提前知道。因此,正如CBroe所暗示的那样,此规则旨在确保仅更改一个不会导致它与另一个的用户定义值冲突,从而导致对比度问题。规范中对这条规则的实际编码是出于遗留原因,但在讨论中首先引用了浏览器这样做的基本原理,如

存在许多非标准系统颜色,但这些颜色的行为因浏览器和平台而异。尝试使用其中任何一种可能会产生意外的结果,从使用意外的颜色到完全被浏览器忽略。另外,正如我所提到的,系统颜色只作为用户定义的值公开。CSSWG之前已经讨论了改善这一点的潜在方法


我们鼓励您应用自定义选择背景色,以补充自定义选择的前景色。

如果我的系统将所选文本的背景色设置为白色,那么在这种情况下,假设您可以这样做,您会赢得什么?