2012-05-03 93 views
0

這是*選擇器的合法用法,如果有,是否提及了瀏覽器如何支持此選項?它似乎工作在我的測試中所有的瀏覽器,但我沒有用舊的或IEcss星號選擇器支持

body * { 
    float: left; 
} 

回答

1

是的!星號是通配符,它​​會選擇您設置的DOM元素中的所有元素。

例如,如果我想要一個屬性適用於您的整個網站:

* { 
    attribute: value; 
} 

或者你用一種特殊的DOM元素做到了!

element * { 
    attribute: value; 
    } 

您也可以使用類似:

* { 
    attribute: value; 
    } 

* * { ... } 

* * * { ... } 

* div * { ... } 

這是一個有點困難......像一個遞歸。

+0

但請注意'* *'不會比'*'提供任何好處,因爲後者已經選擇了所有dom元素,而不僅僅是頂級。 –

+0

取決於如何風格! * {border:1px solid red}所有頂級元素 * * {border:2px點綴綠色}用於每個頂級元素的所有子元素......所以它可能會很有用! ;) – creativeby

+0

除了'* *'還選擇頂級元素。 http://jsfiddle.net/9mUKV/1/ –

1

是的,你的例子是合法的,如果沒有嚴厲的使用*選擇的。這將導致body元素的每個子元素都被左移。

+0

試圖清理我的CSS,這就是爲什麼我使用它。也許這是錯誤的方式去呢?我的所有頁腳元素都留有浮動元素,所以每個元素都有它的冗餘。 – Lukasz

+0

然後,您可以嘗試類似'#footer * {...}' - (將#footer更改爲相應的選擇器),以便僅針對頁腳內的這些元素。這將會/可能是* *選擇器的優秀使用。 'body *'通常會保留用於css重置(http://www.cssreset.com/)等 - 但實際上,它們通常僅在'*'級應用,沒有'body'選擇器。 –

2

是的,但你應該避免使用它。你可以更清楚地說明。但是如果你真的想讓所有的元素都浮動,這是一個很好的方法。但爲什麼你想要這個?

所有瀏覽器都支持這一點,來源:http://www.quirksmode.org/css/contents.html#t10

+0

*:焦點 { 提綱:無; }只是它的一個用法。我討厭鉻概述事情,所以我將這添加到我的重置CSS樣式。 – Lukasz