gpt4 book ai didi

asp.net - 如何摆脱难看的asp:菜单闪烁?

转载 作者:行者123 更新时间:2023-12-03 13:40:25 25 4
gpt4 key购买 nike

我在具有无表呈现模式的ASP.NET 4.0 Webforms页面上使用asp:Menu控件:

<asp:Menu ID="MenuBase" runat="server" DataSourceID="SiteMapDataSourceMenu"
Orientation="Horizontal" CssClass="contentmenu" RenderingMode="List"
IncludeStyleBlock="false">
</asp:Menu>


菜单具有5个或6个菜单项的水平主行,当用户将鼠标悬停在其中时,其中一些会打开垂直弹出菜单。

通常,当发生任何回发并且页面再次呈现时,菜单“闪烁”一会儿(例如半秒),这意味着:所有菜单项(包括弹出菜单中的项)都显示在一行或多行之后彼此恢复正常状态之前。

在所有菜单项“展开”的短暂显示中,菜单看上去就像是在浏览器中禁用了Javascript一样。 (似乎可以通过在asp:menu控件中使用一些Javascript来构建弹出菜单。)

此行为非常难看,尤其是对于大型菜单(在2或3行上短暂渲染)而言,整个页面内容在返回到正常显示之前已向下移动。

您知道这个问题的解决方案吗?

先感谢您!

(备注:我应该提到的是,在升级到ASP.NET 4.0之前,我使用了CodePlex的CSS友好菜单控件。我认为我不再需要CSS友好控件了,因为版本中的asp:Menu 4现在提供了内置的List渲染模式,据我所知,我对CSS友好的控件没有这种闪烁,并且我认为该控件没有使用Javascript,也许这是一个不好的步骤。现在寻找解决方案,如果可能的话,不返回CSS友好的菜单控件。)

编辑:

这种闪烁是与浏览器无关的,尽管在IE 8和IE 7中最明显。在IE 7(或IE 8的兼容模式)中,这是非常丑陋的,因为菜单项甚至以5到6行的形式也以疯狂的对角线模式显示。

最佳答案

如果还有人需要解决方案;出现闪烁是因为您应该在CSS中为菜单设置正确的显示样式。

尝试例如

#menu ul li ul
{
display: none;
}




#menu ul li 
{
position: relative;
float: left;
list-style: none;
}


闪烁是因为ASP.NET 4菜单使用javascript来设置某些内联样式。

关于asp.net - 如何摆脱难看的asp:菜单闪烁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3240873/

25 4 0