1

因此,如果我在我的 .cs 代码中向 LinkBut​​ton 添加样式(例如背景颜色),它看起来会覆盖我拥有的任何适用于它的 css。

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

   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

4 回答 4

2

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

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

background-color: #369 !important;

另外,改变颜色,这样变化就会很明显。

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

顺便说一句,Color.FromName你应该写而不是调用Color.FromArgb(0x33, 0x66, 0x99).

于 2009-12-24T00:11:04.453 回答
1

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

于 2009-12-24T00:01:24.073 回答
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";

这会在事后将课程更改为您想要的任何样式。

于 2009-12-24T00:38:51.297 回答
0

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

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

如果您想要第三种颜色,因为在访问链接后,请使用a:visited. Is that you're 来定义它?

于 2009-12-24T00:11:41.473 回答