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

Posted

技术标签:

【中文标题】使用 body::selection,我想自定义高亮颜色【英文标题】:Use body::selection, i want to customize highlight color 【发布时间】:2012-02-21 04:40:22 【问题描述】:

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

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

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

【问题讨论】:

你的问题是什么?这个例子就像一个魅力:body::selection background-color: red; 完全按照它应该做的事情。 我的问题是为什么它会将 img p li h1 高亮颜色也变成红色? 因为一切都嵌套在 body 标签内 【参考方案1】:

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

::selection 
    background: red;

就此而言,添加 ::-moz-selection 以便它也可以在 Firefox 中使用:

::-moz-selection 
    background: red;

::selection 
    background: red;


从未决定您为E::selection 为任何元素E 设置的样式应该如何传播到E 的后代。有更深入的讨论in the www-style mailing list。也是因为这个原因,::selection 在 CSS3 UI 的最新 LC 修订版中完全从 CSS3 中删除;见this section,上面写着:

::selection 伪元素已被删除,因为它在测试发现互操作性问题和进一步探索/定义的细节后从选择器中删除。

我最好的猜测是浏览器(至少是 Firefox)只是不会将相同的规则应用于后代元素。所以如果你将伪元素应用到body,那么只有body的文字会有自定义的选择背景;嵌套在其中的所有内容都没有选择背景。

【讨论】:

也许你是对的,因为我尝试了很多方法,但没有人让我感到快乐【参考方案2】:

如果要停止级联,可以添加

body *::selection background: inherit;

所以只有顶层的文本会被选择为红色。示例:http://jsfiddle.net/nu6ju/4/

【讨论】:

以上是关于使用 body::selection,我想自定义高亮颜色的主要内容,如果未能解决你的问题,请参考以下文章

exchange OUTLOOK中用户 邮箱满的时候,用户会收到系统发的提示,我想自定义提示的内容,怎么做?

ionic2:如何自定义弹出框宽度?

自定义 Xcode 片段库

请教ug二次开发关于uf_modl_trim_body的一些问题

java 读取txt文件 想自定义从第几个字节开始读和读几个字节 怎么做??

在 iOS 7 中自定义 UISearchBar