2011-12-30 83 views
3

我目前正在改变选定文本的默认背景颜色。这工作得很好::: - moz-selection可能的bug

::selection { 
background:#B6D0FA; 
} 

::-moz-selection { 
background:#B6D0FA; 
} 

我以为我可以通过将它们合并这样节省一些行:

::selection, ::-moz-selection { 
background:#B6D0FA; 
} 

但它不工作在Firefox。

出了什么问题?

+0

我正在使用FF 5.0.1 – ajax333221 2011-12-30 04:58:12

回答

2

Firefox无法解析::selection,这就是为什么它首先需要::-moz-selection。在遇到::selection时,整个块将被忽略。

根据the spec

当用户代理无法分析选择器(即,它不是有效的CSS 2.1),它必须忽略选择器和下述声明块(如果有的话),以及。

为了在Firefox中正确呈现,您必须保留单独的行。

请记住,::selectionremoved from the CSS3 draft entirely

+0

一个应该能够合并每个可能的组合,用逗号分隔它们,并给出'background:#B6D0FA;',而不必担心整个代码不能正常工作,因为它不能解析一个单一的CSS规则 – ajax333221 2011-12-30 05:02:14

+0

@ ajax333221尽可能多地希望它,这不是一个好主意。如果CSS无效,那么用户代理停止解析是有充分理由的。仅为特定的草稿实施创建变通办法会相当剽窃,违背标准的整体思路。 – 2011-12-30 05:06:18

+1

@ ajax333221:如果没有使用不受支持的CSS选择器,就不必担心他们的代码无法正常工作。 – animuson 2011-12-30 05:50:04

相关问题