2013-07-07 49 views
1

我發現了一些使用*符號的樣式表。例如*zoom: 1;*符號代表什麼。有時候這看起來像是[class*="span"]。任何人都可以清除使用符號*在css在CSS中使用*符號

+0

在選擇或字段的名字嗎?第一個例子看起來像一個字段名稱,但第二個看起來像一個選擇器。 – tjameson

+0

最常見的我看到這個樣式表'.clearfix { *變焦:1; }'和有時'保證金左:2.564102564102564%; * margin-left:2.5109110747408616%;''[class * =「span」]' –

+2

可能重複:[#1](http://stackoverflow.com/questions/4563651/what-does-an-asterisk-do -in-A-CSS的屬性名),[#2](http://stackoverflow.com/questions/1204275/what-does-an-asterisk-do-in-a-css-selector),[# 3](http://stackoverflow.com/questions/11286427/what-does-an-asterisk-mean-next-to-a-css-property)的 – DACrosby

回答

15

*zoom是一個黑客,它適用於ie6和ie7。 * { }是通配符(匹配所有元素或子集;如果使用像#header *那麼它將應用於#header的所有後代)。 [class*="span"]與任何位置帶有單詞「span」的元素匹配class

+5

另外值得注意的是,一些開發者(甚至我)使用'* {margin:0;填充:0;概要:0;}'重置默認值,但對性能有意識的開發商,這個選擇是一個很大的性能損失.. –

+0

@kalley謝謝您的回答 –

+1

其實,外國人先生,在它自己的ISN使用時,* {}選擇性能不如單個h1 {}更重要。然而,將它與諸如#header * {}之類的其他內容結合起來很重,一般建議不要這樣做。 –

-1

這是一個選擇所有元素的通配符。

例如,如果你申請保證金整個頁面的每一個元素,您可以使用:

* { 
    margin: 50px; 
} 

您也可以子選項中使用,例如下面將保證金增加中的所有元素一個段落標記:

p * { 
    margin: 10px; 
} 

看到這個: - http://www.stackoverflow.com/a/1204290/2256325

關於你例子,讓我告訴你,如果你加入之前星號(*)一個屬性名稱,該屬性將應用在IE中,而不是在其他瀏覽器中。它僅適用於版本7或更低版​​本。

來源: - http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

+0

爲什麼downvoted ?? –

+0

因爲這個答案只是部分回答了這個問題。它沒有解決問題中的具體問題。請參閱@ kalley的答案,以獲得徹底和充分的答案。 – BenM

+1

http://stackoverflow.com/a/1204290/2256325 – Rikard

2

如果*使用獨立的選擇,它意味着一切。 但是,如果在屬性選擇器[]中使用,則表示「包含」。例如,你有

[*級= 「跨度」]

。這意味着,它將選擇所有具有班級名稱中「span」類別的元素。

它也用作CSS hack,如果它在樣式值內。

+0

爲什麼要投票?這是在他的問題!我只是解釋了星號的不同用法。 – jinmichaelr