2012-08-09 23 views
0

我在CSS這個問題在那裏我有兩個不同的狀態在CSS例如如何在css中給出兩種不同的狀態?

#koolbutton .active { 

    color: #fff 

} 

#koolbutton{ 

    color: #ccc //not active 

} 

當我嘗試這個網站

<button id ="koolbutton" class="active"> 

它給我的正常灰色koolbutton未處於活動狀態,其是白色的!謝謝

+0

問題是'#koolbutton'和'.active'之間的空白。您使用的選擇器正在尋找一個具有「active」類的元素,該元素包含在ID爲「koolbutton」的另一個元素中。 – 2012-08-09 11:57:24

回答

5

您需要省略#koolbutton.active之間的空格。

#koolbutton { /*not active*/ } 
#koolbutton.active { /*active*/ } 
0

你也可以試試這個;

#koolbutton:active { 
    color: #fff; //when user click the button 
} 
#koolbutton{ 
    color: #ccc; //normal display of button 
} 

Here是工作現場演示。

+1

你應該解釋這是什麼,因爲它不是OP要求的。 – roryf 2012-08-09 11:49:39

+0

@ roryf檢查我的答案 – 2012-08-09 11:51:03

+1

這個問題不是關於僞類... – Christoph 2012-08-09 12:09:43

0

問題是你的第一選擇:

#koolbutton .active 

由於是id和class選擇器之間的空間,這也適用於每一個元素與類的active和祖先的ID koolbutton。你想要的是一個koolbutton的ID與類active選擇的每一個元素:

#koolbutton.active 

雖然你選擇的順序並不重要,由於CSS Specificity rules,創造更易於維護的CSS我而言建議你把默認樣式第一,其次是任何變化,這些變化風格:

#koolbutton { /* default styles */ } 
#koolbutton.active { /* .active styles */ } 
#koolbutton.foo { /* Another class styles */ } 

如果你真的想要的風格活躍/聚焦狀態,你應該看看:focus:active假性做選擇器。

+0

投票沒有解釋。如果答案是錯誤的,請告訴我爲什麼... – roryf 2012-08-09 12:01:40

+0

+1最佳答案imo。 – Christoph 2012-08-09 12:08:11

相關問題