使用body :: selection,我想自定义高亮颜色

Ken*_*iau 4 css selection css3 textselection

为什么不能使用body::selection,当我想要任何可以突出显示为我想要的颜色的东西时,任何东西都包括p img li h1

这里的例子现在我希望一切都突出显示为红色,但我正在使用body::selection它,它永远不会工作

http://jsfiddle.net/kent93/nu6ju/

Bol*_*ock 13

如果要将选择背景应用于所有元素,请省略类型选择器:

::selection {
    background: red;
}
Run Code Online (Sandbox Code Playgroud)

就此而言,添加::-moz-selection它也适用于Firefox:

::-moz-selection {
    background: red;
}
::selection {
    background: red;
}
Run Code Online (Sandbox Code Playgroud)

从来没有决定你E::selection为任何元素设置的样式究竟E应该如何传播给后代E.在www风格的邮件列表中有更深入的讨论.也是因为这个原因,::selectionCSS3完全放弃了CSS3 UI的最新LC版本; 见本节,其中说:

:: selection伪元素在测试发现互操作性问题和探索/定义的更多细节之后,已经从选择器中删除了.

我最好的猜测是浏览器(至少是Firefox)不会对后代元素应用相同的规则.因此,如果您将伪元素应用于body,则只有body文本将具有自定义选择背景; 嵌套在其中的所有东西都没有选择背景.