0

当您选择此文本时,您将看到一个蓝色的选择字段。但这不是我的问题的重点。选择此文本后,如果您使用的是 PC,实际文本的颜色将变为白色。在 Mac 上,它保持以前的颜色。这就是我想要改变的颜色。

有没有跨浏览器的解决方案?

4

2 回答 2

2

您可以使用::selection伪选择器:

::selection {
    background: rgb(60, 60, 60);
    color: rgb(245, 245, 245);
}
​
::-moz-selection {
    background: rgb(60, 60, 60);
    color: rgb(245, 245, 245);
}​

由于解析规则,您需要复制您的 CSS 并重新添加前缀:

Gecko 是唯一需要前缀的引擎。由于 CSS 解析规则需要在遇到无效伪元素时删除整个规则,因此必须编写两个单独的规则::-moz-selection, ::selection {...}. 该规则将在非 Gecko 浏览器上被删除,因为::-moz-selection它们对它们无效。

演示:http: //jsfiddle.net/Blender/Hs7bQ/

于 2012-09-29T01:49:09.063 回答
1

我已经更新了小提琴,因为你不能把两个选择器放在一个。-moz-selection 必须是它自己的。 更新了 jsFiddle

Mozilla 开发人员 ::selection

于 2012-09-29T02:45:34.637 回答