2012-11-28 58 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