2013-11-22 43 views
2

這個CSS選擇器應該指向什麼?據我所知:酒吧僞類不存在...如何處理CSS選擇器中的未知/無效僞類?

.Today_s_foo:bar 
{ 
font-size: 21px; 
font-family: "Ubuntu"; 
} 
+1

爲什麼它會做任何事情,如果它無效?你正在使用一些CSS預處理器(SASS,LESS等)嗎? – biziclop

+2

@ user2864740:如果瀏覽器中沒有執行某些操作,則不會應用任何操作。這與將樣式應用於不存在的元素一樣好。 –

+0

我剛剛得到一個必須在HTML上轉換的PSD,我導出了要由每個元素應用的CSS。 CSS必須是正確的(或者至少有一定意義),因爲它來自我必須做的一種考試... – user1249791

回答

2

通常應該無效整個規則,在一個規則中使用多個選擇時可能很重要,看簡單的例子:http://jsfiddle.net/S56xM/

HTML:

<div>Hello!</div> 

CSS:

div, div:foobaresque { font-size: 100px; } 

您將會看到div { font-size: 100px; }「子規則」不適用,即使我們的頭腦告訴我們它會被應用。

1

應用校正

.Today_s_foo的規則將不會在任何工作瀏覽器進行設置。

我認爲這是IE

.Today_s_foo:IE6 /* IE6 hack */ 

,但它不存在列爲不推薦的黑客對http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

+0

我無法真正找到鏈接頁面上的這種特定黑客攻擊,只有'body:empty','a:link:visited,a:visited:link',但它們不同。 – biziclop

+0

所以你的意思是他們就像試圖給我帶來某種錯誤?我認爲我不應該從原始CSS中刪除:foo,但如果我不刪除它,該規則將不適用(當然,只適用於 user1249791

+0

@biziclop我的錯誤,我認爲它已列出。 user1249791我不確定此刻哪個瀏覽器會呈現該代碼。他們是更好的方式發送CSS到只有一個瀏覽器,不會在CSS中創建無效的「錯誤」。 – Wayne

3

根據current specification解析選擇器中的錯誤:「使用選擇器的整個規則被丟棄」。有關後果的示例,另請參閱this part of the spec

「規則」表示如果選擇器的任何部分被解析爲無效,則{brackets}中的每個屬性設置都將被忽略。