ASP:Menu 在 IE10 和 IE11 中显示不正确,但在 Chrome、FF 和 IE9 之前看起来不错

ASP:Menu not shown correctly in IE10 and IE11, but looks aliright in Chrome, FF and till IE9

我正在使用 asp:Menu 控件来创建选项卡式导航。该项目是在 .Net 4.0 中创建的。

以下用于创建标签:

<div class="tabmenustyle displayblock">
    <asp:Menu ID="_TabMenu" runat="server" Orientation="Horizontal">
    </asp:Menu>
</div>

这将在除 IE10、IE11 之外的所有浏览器中正确创建选项卡式结构。

在提到的浏览器中,实际的选项卡看起来像这样:

Image for Expected (as seen in IE8,Chrome,FF)

但是在IE10和IE11中不显示选项卡。如果仔细观察,链接就在那里,但存在以下问题:

  1. 它们几乎看不见。它们放在文本后面而不是作为制表符。
  2. 基本上不创建选项卡。

Image for Tabs in IE11

我试过以下方法:

  1. 添加元 http-equiv="X-UA-Compatible" content="IE=7,8" 标签。
  2. 添加 .browser 文件以兼容 App_Browser 文件。
  3. 将解决方案中的所有项目从 4.0 迁移到 .Net framework 4.5.2。
  4. 正在将 z-index CSS 属性 应用于 asp:menu 控件。
  5. 还尝试在 Page_Load 中将 Page.ClientTarget 设置为 "uplevel"。无果。

我已经无计可施了。我该怎么做才能让它在 IE10 或 IE11 中正常显示。

编辑:其他细节 - 我观察到当浏览器为 IE10 或 IE11 时,发送到浏览器的 HTML 是 table。但对于所有其他人,

最终在尝试了多种解决方案后,我再次尝试找出问题所在。在 App_Browser 中添加 .browser 文件应该更早些。原因是当我添加自己的 IE11 或 IE10 特定定义浏览器文件时,它覆盖了基本的 .Net 定义。

关键是在项目级别使用 refId 引用 IE11 或 IE10 app.browser 并保持 refID 的值等于位于 c:\Windows\Microsoft 的浏览器文件中使用的 Id .NET\Framework\v4.0.30319\Config\Browsers.这在现有规则之上增加了规则。否则,它只是覆盖现有的定义。