2011-12-30 72 views
6

以下行默认包含在HTML5的样板模板:如何在不更改默认颜色和背景颜色的情况下使用CSS3 :: selection?

::-moz-selection{background:#fe57a1;color:#fff;text-shadow:none;} 
::selection{background:#fe57a1;color:#fff;text-shadow:none;} 

不过,我想保留选择的颜色作为OS默认(蓝在Windows,我认为这是在Ubuntu棕橙色)。如果我遗漏了背景属性,则不会有背景。

+0

这不是从CSS3规范中删除? – animuson 2011-12-30 04:56:52

+0

所以你想改变文字颜色,但不是背景颜色? – 2011-12-30 05:01:36

+0

我希望不会,它给了你更多的控制你的配色方案,并且完全无害。 – 2011-12-30 05:14:20

回答

3

因为这个选择是没有正式支持CSS,CSS3从被删除,在CSS4草案目前没有,是不是真的有在选择要如何究竟应用于多文档。

由选择器定义,其意思是覆盖系统的默认文本选择颜色。浏览器显然是从字面上理解的。通过指定::selection,即使您没有指定颜色,这些颜色也会立即被覆盖。问题是系统的默认值不是CSS的一部分。浏览器正在看到你的声明,并且认为“忽略系统的默认值,而是使用这个声明中的内容”。由于您没有指定颜色,因此不应用颜色(背景为无,颜色为继承)。哎呀,很难说你的文字被选中了,是吧?

这只是出现的理论,因为如我所说,实际上没有关于实际发生的事情或应该发生的事情的文档。

说实话,你真正知道的唯一方法就是查看源代码,看看它在看到那个选择器时做了什么。也许可以请求开发团队中某个浏览器的人更容易。无论哪种方式仍然是困难的。也许你可以提交一个错误报告,他们可以深入研究这个问题更多...

+0

从我所知道的情况来看,CSS工作组正在考虑将':: selection'放回UI级别4中,如果它没有达到UI级别3的话。不要屏住我的屏气...... – BoltClock 2011-12-30 18:40:47

+0

@BoltClock:是的,我不知道他们为什么不这样做,但目前它还没有入选CSS4。 :( – animuson 2011-12-30 18:46:20

+0

它不在选择器3或选择器4的草案中,因为它们将所有伪元素移出规范。伪元素是一个非常不同的野兽,我想它不能完全由它们的选择器完全定义。他们将分散在用户界面和其他模块,虽然 – BoltClock 2011-12-30 18:48:47