为什么不能使用body::selection
,当我想要任何可以突出显示为我想要的颜色的东西时,任何东西都包括p img li h1
这里有例子
现在我希望所有突出显示为红色,但我使用body::selection
,它永远不会工作
答案 0 :(得分:11)
如果要将选择背景应用于所有元素,请省略类型选择器:
::selection {
background: red;
}
就此而言,添加::-moz-selection
以便它也可以在Firefox中使用:
::-moz-selection {
background: red;
}
::selection {
background: red;
}
从未确定您为E::selection
设置的任何元素E
的样式应该如何传播到E
的后代。有一个更深入的讨论in the www-style mailing list。也是因为这个原因,{CSS} UI的最新LC修订版已经完全从CSS3中删除了::selection
;见this section,其中说:
在测试发现互操作性问题以及探索/定义的更多细节之后,已经删除了:: selection伪元素,因为它从Selectors中删除了。
我最好的猜测是浏览器(至少是Firefox)不会对后代元素应用相同的规则。因此,如果您将伪元素应用于body
,则只有body
文本将具有自定义选择背景;嵌套在其中的所有东西都没有选择背景。
答案 1 :(得分:0)
如果您想停止级联,可以添加
body *::selection { background: inherit; }
因此,只有顶级文字才能选择红色。示例:http://jsfiddle.net/nu6ju/4/