小编典典

如何使用CSS设置asp.net菜单的样式

css

我正在设置asp.net菜单的样式,并且试图了解StaticSelectedStyle-CssClass和StaticHoverStyle-
CssClass参数的含义。

我的理解是,只要需要,使用这些参数定义的样式就会作为CSS类应用于相关元素。所以我创建菜单如下:

<asp:Menu ID="NavigationMenu" DataSourceID="NavigationSiteMapDataSource" 
        StaticMenuStyle-CssClass="StaticMenuStyle"
        StaticMenuItemStyle-CssClass="StaticMenuItemStyle"
        StaticSelectedStyle-CssClass="StaticSelectedStyle"
        StaticHoverStyle-CssClass="StaticHoverStyle"
        Orientation="Horizontal" 
        MaximumDynamicDisplayLevels="0" 
        runat="server">
</asp:Menu>

它适用于StaticMenuStyle-CssClass和StaticMenuStyle-
CssClass(将这些类应用于相关元素),但无论元素的选定状态或悬停状态如何,都不会应用StaticSelectedStyle-
CssClass和StaticHoverStyle-CssClass。

我应该怎么做才能完成这项工作?

谢谢。

编辑:抱歉,我应该提到这是.NET4。这是生成的HTML:

<div id="NavigationMenu">
 <ul class="level1 StaticMenuStyle">
  <li><a class="level1 StaticMenuItemStyle selected" href="/Link.aspx">Link</a></li>
 </ul>
</div>

如您所见,将应用StaticMenuStyle和StaticMenuItemStyle,但不会应用StaticSelectedStyle-
CssClass或StaticHoverStyle-
CssClass。不知道为什么。我知道我可以使用selected,但不会应用StaticSelectedStyle-
CssClass的预期行为吗???通过使用selected,我对.NET在幕后所做的事情进行了假设,这是不对的。


阅读 913

收藏
2020-05-16

共1个答案

小编典典

好的,因此到目前为止,显然没有很多人尝试过.NET
4菜单。最终版本是几天前发布的,这并不奇怪。我似乎是第一个报告似乎是错误的人。如果有时间,我会向MS报告此情况,但是鉴于MS一直以来不关注错误报告的记录,因此我不急于这样做。

无论如何,这时最差的解决方案是将控件生成的CSS样式(检查标题)复制并粘贴到自己的样式表中,然后从那里进行修改。完成此操作后,不要忘记在菜单上设置IncludeStyleBlock
=“
False”,以防止自动生成CSS,因为从现在开始我们将使用复制的块。从概念上讲,这是不正确的,因为您的应用程序不应依赖自动生成的代码,但这是我能想到的唯一选择。

2020-05-16