HTML5 Boilerplate 模板默认包含以下几行:
::-moz-selection{background:#fe57a1;color:#fff;text-shadow:none;}
::selection{background:#fe57a1;color:#fff;text-shadow:none;}
但是,我想将选择颜色保留为操作系统默认值(Windows 中为蓝色,我认为在 Ubuntu 中为棕橙色)。如果我省略了 background 属性,就不会有背景。
最佳答案
由于此选择器未正式受 CSS 支持,已从 CSS3 中删除且目前不在 CSS4 草案中,因此确实没有太多文档确切地应该应用选择器。
根据选择器的定义,它旨在覆盖系统的默认文本选择颜色。浏览器显然从字面上理解了这一点。通过指定 ::selection
,这些颜色会立即被覆盖,即使您没有指定它们也是如此。问题是系统的默认值不是 CSS 的一部分。浏览器看到您的声明并认为“忽略系统的默认设置,而是使用此声明中的内容”。由于您没有在那里指定颜色,因此不会应用任何颜色(背景为无,颜色为继承)。哎呀,有点难以判断您的文本已被选中,是吧?
这只是关于似乎正在发生的事情的理论,因为正如我所说,确实没有关于实际发生的事情或应该发生的事情的文档。
老实说,您真正确定知道的唯一方法是查看源代码,看看当它看到该选择器时它在做什么。也许向开发团队的某个人询问这些浏览器之一会更容易。无论哪种方式仍然很困难。也许您可以提交错误报告,他们可以更深入地研究这个问题......
关于css - 如何在不更改默认颜色和背景颜色的情况下使用 CSS3::selection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676276/