1
我创建了一个使用列表元素id的方法,根据当前页面更改菜单按钮的颜色。如果它与当前页面不匹配,则该标识设置为默认字符串。它在Chrome中运行,但在FireFox中不起作用。让我知道是否需要添加更多代码。CSS在FireFox中无法正常工作
在母版页
<div id="body">
<asp:ContentPlaceHolder runat="server" ID="FeaturedContent" />
<nav>
<ul id="menu_wrap" class="Blue">
<li class="button" id="<%= SetSelectedLink("Default.aspx") %>"><a href="Default.aspx">Manage Report</a></li>
<li class="button" id="<%= SetSelectedLink("Item.aspx") %>"><a href="Item.aspx">Create New Item</a></li>
<li class="button" id="<%= SetSelectedLink("CloneReport.aspx") %>"><a href="CloneReport.aspx">Clone Report</a></li>
</ul>
</nav>
</div>
在Master.cs文件
public string SetSelectedLink(string linkUrl)
{
var url = Request.Url.AbsolutePath.ToLower();
return url.Contains(linkUrl.ToLower()) ? "temp" : "";
}
在CSS文件
li#temp.button a {
background: #0078a5;
background: -moz-linear-gradient(top, #0078a5 0%, #00adee 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#0078a5), color-stop(100%,#00adee));
background: -webkit-linear-gradient(top, #0078a5 0%,#00adee 100%);
background: -o-linear-gradient(top, #0078a5 0%,#00adee 100%);
background: -ms-linear-gradient(top, #0078a5 0%,#00adee 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0078a5', endColorstr='#00adee',GradientType=0);
background: linear-gradient(top, #0078a5 0%,#00adee 100%);
}
请发布生成的html而不是asp代码。 – Oriol 2014-08-29 16:35:57
为什么你使用一个id而不是一个类? – epascarello 2014-08-29 16:40:37
@epascarello我认为这将是处理它的最好方法? – user3339242 2014-08-29 16:52:46