在没有覆盖css的情况下向LinkBut​​ton添加样式

时间:2009-12-23 23:57:44

标签: asp.net css linkbutton

所以看起来如果我在.cs代码中向LinkBut​​ton添加背景颜色等样式,它会覆盖我所适用的任何CSS。

有没有办法添加样式而不是在我的代码后面替换它?谢谢! 我使用链接按钮作为菜单,因此活动的linkBut​​ton应该具有不同的背景颜色。 所以我的解决方案是当用户点击我的事件处理程序中的链接按钮时,我会执行以下操作:

   lnkView.BackColor = System.Drawing.Color.FromName("#369");

但是我的css中的悬停样式将不再有效:

.navlist a:hover
{
    color: #fff;
    background-color: #369;
    text-decoration: none;
}

在我的aspx中:

<ul class="navlist">
        <li><asp:LinkButton ID="lnkView" runat="server">view</asp:LinkButton></li>
        <li><asp:LinkButton ID="lnkCreateNew" runat="server">create new</asp:LinkButton></li>
    </ul>

4 个答案:

答案 0 :(得分:2)

编辑:你的问题不清楚,但你似乎误解了CSS。将background-color添加到style属性不会导致它完全忽略任何CSS规则。相反,它将覆盖background-color属性的任何CSS规则,但不会影响任何其他规则。

如果您不想覆盖CSS规则中的background-color属性,请将!important标记添加到:hover中的CSS规则中,如下所示:

background-color: #369 !important;

此外,更改颜色以便更改明显。

或者,您可以使用背景颜色为.navlist a:link .Active添加新的CSS规则,然后在代码中添加Active类。 (lnkView.CssClass += "Active"

顺便说一下,您应该写Color.FromName

,而不是调用Color.FromArgb(0x33, 0x66, 0x99)

答案 1 :(得分:1)

任何内联样式将始终覆盖文档头部或外部css文件中的任何继承样式。唯一的另一个选择是添加一个javascript函数,在DOM就绪或Window ready事件之后覆盖对象的样式。

答案 2 :(得分:1)

不确定你在这里使用,因为你的问题不是很清楚。然而,这也是一个选择。

有两种css样式:

.navlistafteranaction a:link
    {
        color: #fff;
        background-color: #123;
        text-decoration: none;
    }

.navlist a:link
    {
        color: #fff;
        background-color: #123;
        text-decoration: none;
    }

然后在你的代码后面只需切换你的CSSClass:

lnkbtn.CssClass = "navlistafteranaction";

这会改变课程,使其具有您想要的任何风格。

答案 3 :(得分:0)

如果我理解你想要什么,你想要根据链接按钮是否正在悬停而应用不同的样式?所以,拥有你拥有的风格,但也有:

.navlist a:link
    {
        color: #fff;
        background-color: #123;
        text-decoration: none;
    }

如果你想要第三种颜色,在访问链接后,用a:visited.定义那是你所追求的?