如何更改所选文本的实际颜色?

时间:2012-09-29 01:37:21

标签: css selection

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

是否有跨浏览器解决方案?

2 个答案:

答案 0 :(得分: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);
}​

由于parsing rules,您需要复制CSS并重新加上前缀:

  

Gecko是唯一需要前缀的引擎。 由于这个事实   CSS解析规则要求在删除整个规则时   遇到无效的伪元素,必须有两个单独的规则   书面::-moz-selection, ::selection {...}。规则是   由于::-moz-selection无效,因此放弃在非Gecko浏览器上。

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

答案 1 :(得分:1)

我已经更新了小提琴,因为您无法将两个选择器合二为一。 -moz-selection需要是它自己的。 updated jsFiddle

Mozilla Developers ::selection