我已经::selection
在css中设置了颜色,所以当你在屏幕上突出显示文本时,文本的颜色是粉红色的。我现在尝试在页面加载时通过 jQuery 覆盖该颜色。似乎它应该超级简单。但这对我不起作用。
5 回答
我相信如果你想达到这种效果,你需要应用基于 CSS 类的颜色变化。我分叉了你的 jsfiddle,结果如下
尽管我认为您的问题很有趣,但我很难确定可以将其付诸实践的地方。您想即时更改主题吗?
根据这个问题,您无法更改选择的突出显示颜色,因为没有用于操作伪类的 DOM 接口。您可以做的是更改元素的类。
我有同样的问题,我偶然发现了这个问题。解决方案可以只是将<style>
具有 css 属性的标签添加到文档正文中。
$('<style>
p::selection{
background-color:#000;
}
p::-moz-selection{
background-color:#000;
}</style>').insertAfter('body *:last');
这可能不是最优雅的方式,但至少它有效。
::selection
是CSS伪类,而不是 jquery 选择器!
您不能这样做$('p::selection').css({color: "#3c3"})
并期望更改文本选择颜色。
$(<selector>)
允许您以灵活的方式选择dom 元素,使用 ID、css 类、属性...:hover
,:after
...::selection
是 CSS 伪选择器,可让您设置元素的样式。
尽管 jquery 选择器的语法看起来与伪类 css 相同,但它们是不同的。
顺便说一句,不可能以编程方式更改 css 伪类的样式(如:hover
...)。
如果您可以更改为使用类而不是直接从 JavaScript 设置颜色,那么就这样做,因为它更简单。
否则,请参阅此问题:从 JavaScript 设置 CSS 伪类规则
使用此答案中提供的库:
jss('p::selection', {
color: '#3c3'
});