2012-11-28 96 views
3

我的網站菜單欄中有幾個<asp:LinkButton>。菜單欄和這些按鈕有Css設置。我正在尋找的是突出顯示與哪個頁面處於活動狀態相對應的按鈕。正在被動態設置的CSS樣式正在被覆蓋

我可以動態地將一個新的Css類應用到我的Linkbuttons,由瀏覽器呈現爲定位標記),但新應用的CSS將被現有類覆蓋。我試圖分析那裏的任何錯誤,但沒有運氣。這是我的代碼 -

的HTML的

<ul class="navigation"> 
    <li> 
     <asp:LinkButton ID="lbtn_about" runat="server" OnClick="lbtn_about_Click">About Us</asp:LinkButton> 
    </li> 

現有CSS-

ul.navigation li a 
    { 
    text-decoration: none; 
    display: block; 
    color: #838383; 
    height: 24px; 
    } 

CSS類設置dynamically-

.activeLink 
    { 
    color: #588500; 
    } 

在我的頁面加載的一部分我我在做這個 -

LinkButton lb = (LinkButton)Page.Master.Master.FindControl("lbtn_about"); 
lb.CssClass = "activeLink"; 

HTML呈現在瀏覽器的

<a id="ctl00_ctl00_lbtn_about" class="activeLink" href="javascript:__doPostBack('ctl00$ctl00$lbtn_about','')">About Us</a> 

其明確表示,類設置,但activeLink CSS是由ul.navigation li a覆蓋。建議請。

回答

6

這是因爲ul.navigation li a.activeLink更具體。

如果你想到一個點系統中的元素說ul有1點,一類說navigation有10因此ul.navigation li a有至少11分就在ul.navigation VS的10 activeLink

detailed article on css specificity

http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html「>

至於你只需要與#idul.navigation li a.activeLink以更高的特異性引用您的.activeLink,是它的解決方案。

去和可能的CSS與你同在!

+0

這很有趣。我憑着瞭解CSS的特異性。感謝您的鏈接。讓我看看它和您的解決方案:) – Cdeez

+2

榮譽給你這是我今天學到的一些好東西:) – Cdeez