代码之家  ›  专栏  ›  技术社区  ›  Matt Mitchell

当网页包含谷歌地图时,修复IE7中CSS/JS下拉列表的最佳方法

  •  3
  • Matt Mitchell  · 技术社区  · 16 年前

    我有一个网页使用 <ul> 导航列表(javascript将样式更改为在mouseover上显示或不显示)。

    这对我来说很管用 除了 在IE6和IE7中,当我在页面上有一个谷歌地图时。

    在这种情况下,下拉列表根本不起作用。但是,该页面在firefox 2中继续工作。

    我做了一些研究,发现这可能是IE选择框错误的一个例子,但我不确定,因为谷歌地图似乎使用的是 <div> 不是一个 <iframe> .

    有没有其他人遇到过类似的问题,如果有,他们是否有任何关于解决这个问题的最佳方法的建议?

    5 回复  |  直到 10 年前
        1
  •  2
  •   Dan Herbert    16 年前

    我不知道这是否能解决你的问题,但你可能想试试 this solution at ccsplay.co.uk 解决了下拉列表下出现菜单的问题。我不知道它是否会起作用,但值得一试。

        2
  •  2
  •   travis    16 年前

    我修复了一个类似的问题,即在IE6/IE7/IE8中不在Flash电影上显示下拉列表。 jQuery :

    $(function () {
      $("#primary-nav").appendTo("#footer");
    });
    

    在哪里? primary-nav ID 下拉容器元素和 footer 身份证件 页上最后一个元素的。然后我使用绝对定位将下拉列表重新定位到它们所属的顶部。

    这样做的原因是,IE比 z-index . 不过,它仍然无法在Windows Media Player插件的顶部显示。

        3
  •  2
  •   Joum    16 年前

    我相信这可能是因为IE6+使用了一个Active-X Thingy来解析CSS。

    随着时间的推移,我不得不调整我的工作,在我的CSS中加入一些IE黑客,以便它与几个浏览器兼容。

    我首先尝试做一个没有javascript的菜单,使用纯CSS,包括我提到的黑客。它可能会解决你的问题。实际上,您不需要Javascript来更改mouseover和类似的样式。

    如果你想看看CSS黑客是关于什么的:点击 here

    如果您想查看一些纯CSS菜单示例:单击 here

    希望这有帮助!

        4
  •  2
  •   Adz    16 年前

    根据 this google maps thread ,您是正确的-一个iframe是由谷歌代码插入的。

    你需要使用丹提到的解决方案,

    你可能想试试 this solution at ccsplay.co.uk 解决了下拉列表下出现菜单的问题

    或者,请参见 Internet Explorer HACK/Fix For Select Box Showing through DIV .

    基本上,解决方案是,使用JavaScript将CSS菜单放在IE6中的iframe中。

    另一种解决方案是在下拉CSS菜单时使用javascript隐藏Google地图,或者在下拉CSS菜单时使用静态地图(甚至可能是Google静态地图)替换Google地图。

        5
  •  0
  •   Community CDub    7 年前

    我没有立即给你答复,但是中提到的工具 this answer (尤其是IE DOM检查器)可能会有所帮助。