4

http://jsfiddle.net/uKdPM/

我已经::selection在css中设置了颜色,所以当你在屏幕上突出显示文本时,文本的颜色是粉红色的。我现在尝试在页面加载时通过 jQuery 覆盖该颜色。似乎它应该超级简单。但这对我不起作用。

4

5 回答 5

5

我相信如果你想达到这种效果,你需要应用基于 CSS 类的颜色变化。我分叉了你的 jsfiddle,结果如下

尽管我认为您的问题很有趣,但我很难确定可以将其付诸实践的地方。您想即时更改主题吗?

于 2011-12-12T11:44:24.223 回答
2

根据这个问题,您无法更改选择的突出显示颜色,因为没有用于操作伪类的 DOM 接口。您可以做的是更改元素的类。

于 2011-12-12T11:45:51.953 回答
1

我有同样的问题,我偶然发现了这个问题。解决方案可以只是将<style>具有 css 属性的标签添加到文档正文中。

$('<style> p::selection{ background-color:#000; } p::-moz-selection{ background-color:#000; }</style>').insertAfter('body *:last');

这可能不是最优雅的方式,但至少它有效。

于 2013-01-12T14:44:18.340 回答
0

::selectionCSS伪类,而不是 jquery 选择器!

您不能这样做$('p::selection').css({color: "#3c3"})并期望更改文本选择颜色。


  • $(<selector>)允许您以灵活的方式选择dom 元素,使用 ID、css 类、属性...

  • :hover, :after...::selection是 CSS 伪选择器,可让您设置元素的样式。

尽管 jquery 选择器的语法看起来与伪类 css 相同,但它们是不同的。


顺便说一句,不可能以编程方式更改 css 伪类的样式(如:hover...)。

于 2011-12-12T11:40:59.780 回答
0

如果您可以更改为使用类而不是直接从 JavaScript 设置颜色,那么就这样做,因为它更简单。

否则,请参阅此问题:从 JavaScript 设置 CSS 伪类规则

使用此答案中提供的库:

jss('p::selection', {
    color: '#3c3'
});

http://jsfiddle.net/thirtydot/uKdPM/9/

于 2011-12-12T11:50:31.183 回答