0

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

以下用于创建选项卡:

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

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

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

预期的图像(如 IE8、Chrome、FF 中所示)

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

  1. 它们几乎看不见。它们被放在文本后面而不是标签。
  2. 基本上,不会创建选项卡。

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 是一个表格。但对于所有其他人,<ul> 与 <li> 作为导航菜单项一起发送。IE10 或 IE11 发送不同的 HTML 可能是什么原因。

4

1 回答 1

0

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

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

于 2016-05-19T07:10:24.007 回答