C# 是什么原因导致IE8下我的ASP.NET菜单中的菜单项后面出现额外的空行?
我第一次使用asp:Menu时遇到了一个问题 我有四个选项的水平菜单。第三个选项是“过滤器”。将鼠标悬停在“过滤器”上会生成一个带有多个选项的垂直下拉菜单,其中两个选项是“过滤器类别一”和“过滤器类别二”。带有这些选项的下拉菜单看起来很好,直到我将鼠标悬停在其中一个有子项的选项上(例如“Filter Category one”) 此时,“Filter Category One”(过滤类别1)下会出现一个空行,同时它自己的菜单选项(子菜单)会显示在右侧。3级菜单的底部也会出现一条空行,这是我将鼠标悬停在“Filter Category One”上时出现的子菜单。换句话说,包含选项Filter 1.1、Filter 1.2和Filter 1.3(请参见下文)的菜单在Filter 1.3下方有一个空行C# 是什么原因导致IE8下我的ASP.NET菜单中的菜单项后面出现额外的空行?,c#,asp.net,internet-explorer-8,aspmenu-control,C#,Asp.net,Internet Explorer 8,Aspmenu Control,我第一次使用asp:Menu时遇到了一个问题 我有四个选项的水平菜单。第三个选项是“过滤器”。将鼠标悬停在“过滤器”上会生成一个带有多个选项的垂直下拉菜单,其中两个选项是“过滤器类别一”和“过滤器类别二”。带有这些选项的下拉菜单看起来很好,直到我将鼠标悬停在其中一个有子项的选项上(例如“Filter Category one”) 此时,“Filter Category One”(过滤类别1)下会出现一个空行,同时它自己的菜单选项(子菜单)会显示在右侧。3级菜单的底部也会出现一条空行,这是我将鼠标
我怀疑(但不是肯定的)当过滤器类别1徘徊在过滤器类别1和过滤器类别二之间的空行与过滤器1.3之后出现的额外空白行的原因相同。
我的客户只使用IE 8。我使用Firefox和Chrome浏览器浏览,没有遇到这个特殊问题。(出现了许多其他问题,但不是这个问题。) 我在stackoverflow和其他地方发现了关于asp:Menu和IE8的投诉,但我没有看到与我相同的投诉 我将感谢任何帮助 如果有办法上传的话,我很乐意附上一张照片 后续:我们使用IE8怪癖模式。该问题在IE8标准或IE7标准模式下消失(尽管出现了其他问题)无法使用兼容性视图中的以下代码和IE8复制您的问题。请更正我的doctype或任何与您不同的内容,以便此代码在IE8中也打断/显示空行
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication3._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Menu
OnMenuItemClick="Menu_ItemSelected"
Orientation="Horizontal"
ID="MainMenu"
runat="server"
StaticDisplayLevels="1"
DynamicHoverStyle-BackColor="LightGray"
DynamicHoverStyle-BorderColor="Black"
DynamicHoverStyle-BorderStyle="Solid"
DynamicHoverStyle-BorderWidth="1"
StaticMenuItemStyle-BorderColor="gray"
StaticMenuItemStyle-BorderWidth="1"
StaticMenuItemStyle-BorderStyle="Solid"
StaticMenuItemStyle-HorizontalPadding="15px"
DynamicMenuStyle-BorderColor="Black"
DynamicMenuStyle-BorderStyle="Solid"
DynamicMenuStyle-BorderWidth="1"
DynamicMenuStyle-BackColor="WhiteSmoke"
DynamicMenuStyle-HorizontalPadding="0"
DynamicMenuItemStyle-HorizontalPadding="5"
DynamicMenuItemStyle-Font-Size="X-Small"
>
<Items>
<asp:MenuItem Text="Home" NavigateUrl="javascript:mainPage_Click()" />
<asp:MenuItem Text="Job Details" NavigateUrl="javascript:jobDetailsPage_Click()" />
<asp:MenuItem Selectable="false" Text="Filter">
<asp:MenuItem Selectable="true" Text="Clear Filter"/>
<asp:MenuItem Selectable="false" Text="Filter Category One">
<asp:MenuItem Selectable="true" Text="Filter 1.1"/>
<asp:MenuItem Selectable="true" Text="Filter 1.2"/>
<asp:MenuItem Selectable="true" Text="Filter 1.3"/>
</asp:MenuItem>
<asp:MenuItem Selectable="false" Text="Filter Category Two">
<asp:MenuItem Selectable="true" Text="Filter 2.1"/>
<asp:MenuItem Selectable="true" Text="Filter 2.2"/>
<asp:MenuItem Selectable="true" Text="Filter 2.3"/>
</asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="Help" NavigateUrl="ITOBPSLADB_help.htm" Target="_blank" />
</Items>
</asp:Menu>
</div>
</form>
</body>
</html>
请不要将navigateurl的目标设置为javascript函数。它使鼠标中键无法在新选项卡中打开,并破坏了可访问性(这是某些国家的法律要求)。我在IE8中测试了此代码,悬停时没有出现空行-这意味着可能是您设置的任何其他CSS的问题。Nikki9696,是不是在IE8怪癖模式下?Nikki,我的navigateurl目标是JavaScript函数,这些函数使JavaScript所属的同一HTML页面的可见或不可见部分可见。这有什么不对?如果情况不好,我该怎么做?顺便说一句,这不是一个应用程序的一般公众。这是一个内部应用程序,只供一家美国公司的一部分人使用。哦,为了回答这个问题,如果这是一个外部网站,并且有工作清单之类的东西,那么用户一次很难查看多个清单。这实际上是我对petfinder的不满——链接不会在新标签中打开,我会因为搜索而失去位置。因此,这是一个简单的烦恼因素。更大的问题(同样是外部网站)是该网站在视障人士使用的浏览器中无法正常运行,在搜索引擎中也无法很好地索引。我将您的代码复制到了一个新项目中。我不得不将Inherits=“WebApplication3.\u Default”更改为Inherits=“WebApplication2.\u Default”,并删除了OnMenuItemClick。空白线问题直到我切换到IE8 Quikes模式才出现,这就是这个公司使用的。编辑:哦,等等。当你说“空行”时,你是指“家”和“工作细节”之间的一点点空白吗?我打赌我找错地方了。不,那一点点空白是故意的。只有将鼠标悬停在过滤器选项上,然后将鼠标悬停在过滤器类别1上,才能看到此问题。但我认为你必须处于IE8怪癖模式才能复制这个问题。基本上,当您将鼠标悬停在过滤器类别1上时,过滤器类别1和过滤器类别2之间会出现一个关于线条高度的空白。在这些子菜单中的Filter 1.3(和Filter 2.3)下也会出现类似的空白区域。因为即使在上面的代码中也出现了这个问题,所以我排除了CSS的原因。我真的认为这是IE8的问题,但我想解决它。谢谢你的帮助!我看不到一个空行,真让我难受。祝你任务顺利,抱歉我帮不了你更多。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication3._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Menu
OnMenuItemClick="Menu_ItemSelected"
Orientation="Horizontal"
ID="MainMenu"
runat="server"
StaticDisplayLevels="1"
DynamicHoverStyle-BackColor="LightGray"
DynamicHoverStyle-BorderColor="Black"
DynamicHoverStyle-BorderStyle="Solid"
DynamicHoverStyle-BorderWidth="1"
StaticMenuItemStyle-BorderColor="gray"
StaticMenuItemStyle-BorderWidth="1"
StaticMenuItemStyle-BorderStyle="Solid"
StaticMenuItemStyle-HorizontalPadding="15px"
DynamicMenuStyle-BorderColor="Black"
DynamicMenuStyle-BorderStyle="Solid"
DynamicMenuStyle-BorderWidth="1"
DynamicMenuStyle-BackColor="WhiteSmoke"
DynamicMenuStyle-HorizontalPadding="0"
DynamicMenuItemStyle-HorizontalPadding="5"
DynamicMenuItemStyle-Font-Size="X-Small"
>
<Items>
<asp:MenuItem Text="Home" NavigateUrl="javascript:mainPage_Click()" />
<asp:MenuItem Text="Job Details" NavigateUrl="javascript:jobDetailsPage_Click()" />
<asp:MenuItem Selectable="false" Text="Filter">
<asp:MenuItem Selectable="true" Text="Clear Filter"/>
<asp:MenuItem Selectable="false" Text="Filter Category One">
<asp:MenuItem Selectable="true" Text="Filter 1.1"/>
<asp:MenuItem Selectable="true" Text="Filter 1.2"/>
<asp:MenuItem Selectable="true" Text="Filter 1.3"/>
</asp:MenuItem>
<asp:MenuItem Selectable="false" Text="Filter Category Two">
<asp:MenuItem Selectable="true" Text="Filter 2.1"/>
<asp:MenuItem Selectable="true" Text="Filter 2.2"/>
<asp:MenuItem Selectable="true" Text="Filter 2.3"/>
</asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="Help" NavigateUrl="ITOBPSLADB_help.htm" Target="_blank" />
</Items>
</asp:Menu>
</div>
</form>
</body>
</html>