2011-12-30 85 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

相關問題