2012-11-23 229 views
5

我發現在CSS這些符號:等號前的星號是什麼意思(* =)?感嘆號怎麼樣?

.nav li ul li a [class*="icol-"] { opacity: 0.5; filter: alpha(opacity=50); padding-top: 4px; } 

.secNav .chzn-container { width: 100%!important; max-width: 100%; } 

什麼的=簽訂之前,*的含義是什麼?這是使用!符號時的評論嗎?

+0

http://coolhomepages.com/images/blog/cheat-sheets/css-cheat-sheet-v2.png –

回答

8

!!important的一部分;它是不是評論。 !important強制始終應用規則。它通常用於覆蓋或防止您的樣式被覆蓋。

*=表示「包含」。因此,在該示例中,第一行是查找所有包含「icol-」的類名稱的.nav li ul li a元素的子元素。

+0

那麼,是什麼'寬度:100%!重要;'是什麼意思? – pheromix

+1

這意味着該寬度將總是被應用(其他CSS樣式不能覆蓋它)。 –

+0

信息學很難:我想我會改變我的工作:) – pheromix

9
element[attribute*="includesthis"] 

換句話說:

<a class="someclassicol-hello">Click me and win a free monkey</a> 

是由

a[class*="icol-"] 

如果字符串出現在任何地方的屬性相匹配,這是一個比賽。

還有^=開頭,$=結尾。 Read more on this here


!important強制規則相互覆蓋,否則他們不會。

a { color: red !important } 
a.blue { color: blue } 

<a class="blue">I'm actually red, because the less specific rule is !important</a> 

Read more on that here。特別是該位:

應該何時!important使用嗎?

與任何技術一樣,根據具體情況有利有弊。那麼它應該什麼時候使用,如果有的話?這是我對潛在有效用途的主觀概述。

NEVER

,除非它們是絕對必要畢竟其他途徑已經用盡!important聲明不得使用。如果你使用!懶惰的重要,爲了避免正確的調試,或急於完成項目,那麼你濫用它,你(或那些繼承你的項目)會遭受後果。

2

W3 recommendation

[att*=val]

表示與ATT屬性值中包含子串 「VAL」 的至少一個實例的元件。如果「val」是空字符串,那麼選擇器不會表示任何內容。

所以,在你的情況下,將匹配在自己的類屬性(的.nav li ul li a孩子)有icol-任何元素。

2

*=是一個屬性選擇,請參閱CSS3 specification

!important手段,該規則是由風格的作者視爲重要的,不應該被覆蓋,例如見CSS2進行了深入的解釋。

2

不要與~混淆,它只與空白區域相匹配。


[class*="foo"] /* 'fooA bar' */ 

將匹配含foo具有或不具有在其周圍空間)含有foo

[class~="foo"] /* 'foo bar' */ 

將匹配的類與周圍空間


類10

還有:

[class^="foo"] // begins with foo ('fooABC') 
[class$="foo"] // ends with foo ('ABCfoo') 
[class|="foo"] // begins with foo and is separated by a dash ('foo-bar') 

更多細節在這裏:Complex Selectors

+0

必須學習新的語言,而以前的語言還沒有掌握!辛苦的工作大聲笑! – pheromix

+0

尼斯解釋! –