所以看起来如果我在.cs代码中向LinkButton添加背景颜色等样式,它会覆盖我所适用的任何CSS。
有没有办法添加样式而不是在我的代码后面替换它?谢谢! 我使用链接按钮作为菜单,因此活动的linkButton应该具有不同的背景颜色。 所以我的解决方案是当用户点击我的事件处理程序中的链接按钮时,我会执行以下操作:
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>
答案 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.
定义那是你所追求的?