【问题标题】:Why is IE7 not rendering this absolutely positioned element correctly?为什么 IE7 不能正确呈现这个绝对定位的元素?
【发布时间】:2011-10-17 18:36:33
【问题描述】:

关于 IE7 具有绝对定位元素的行为,有大量问题和论坛帖子。在我读过的十几篇文章中,其中包含的任何建议都对我的特殊情况没有帮助。我开始怀疑是不是因为我使用的是 HTML5 shiv。无论如何,我希望有人能对我所看到的行为有所了解。

Firefox 5、Safari 5、Chrome 12、IE8/9

Internet Explorer 7

简而言之,您将鼠标悬停在其中一个导航菜单项上,它会下拉一个带有高级菜单的 div,yadda yadda yadda...隐藏的 div 是绝对定位的,但是在 IE7 中它会捕捉到菜单的边缘您突出显示的项目。在其他任何地方,它都会正确显示在其下方。

我正在使用 remy 的 HTML5 shiv。我包含 CSS 以“阻止”以下元素:headernavarticlefootersectionasidefigurefigcaption

以下是相关的 HTML 和 CSS:

<nav>
   //other nav divs
   <div id="kb">
      <a href="/kb/"><span>knowledge base</span></a>
      <div id="kb_expand" class="nav_expand">
         <div>
            //more options...
            <section>
               <h2><a href="">Exchange</a></h2>
               <ul>
                  <li><a href="">Exchange Setup</a></li>
                  <li><a href="">Calendar Basics</a></li>
                  <li><a href="">Calendar Sharing</a></li>
                  <li><a href="">Resources</a></li>
               </ul>
            </section>
            //more options...
         </div>
      </div>
   </div>
   //other nav divs
 </nav>


nav{float:right;margin-top:-26px;text-align:right;width:945px;padding:9px 0 10px}
nav > div{display:inline;padding:8px 0 11px}
.nav_expand{display:none;position:absolute;background:url('images/shadow-south.png') repeat-x bottom;padding-bottom:7px}
.nav_expand div{text-align:left;background:url('images/nav-background.png') repeat-y;width:925px;padding:5px 10px 10px;color:#FFF;margin-top:10px;overflow:hidden}

感谢任何人提供的任何见解!谢谢!

【问题讨论】:

  • 我现在无法检查,但我不确定选择器 nav &gt; div 在 IE7 中是否正常工作。

标签: css html css-position internet-explorer-7


【解决方案1】:

我们决定放弃对 Internet Explorer 7 的支持。IE7 中存在一个绝对位置错误,不值得为我们的访问者市场份额修复。

【讨论】:

    【解决方案2】:

    嘿,我遇到了与您描述的类似的事情,花了我几个小时才弄清楚,最后我不知道为什么会导致问题,但我怀疑这是一个错误而不是一个功能。我在第一级有text-align: right; ul,然后在第二级有text-align: left;。从第一级删除它解决了这个问题。为了达到相同的效果(因为我将锚呈现为块),我只是将 text-align 放在锚上而不是 ul

    希望对您有所帮助。我想你现在已经继续前进了,但有兴趣看看这是否与你的问题有关。

    【讨论】:

      【解决方案3】:

      我想我几周前也遇到了同样的问题,这让我发疯了。

      我用谷歌搜索了position absolute ie7,类似的东西,并尝试将所有position:absolute 变成position:relative,然后转为margin-right -left -top -bottom - 没有用。

      然后我摸索了z-index,也无济于事。

      我的解决方案是给每个元素一个样式position:absolute。我的问题是谷歌地图上的一些 div。 position:absolute;top:0;left:0;width:100%;height:100% 成功了。幸运的是,我不依赖任何相对定位的 div,但我认为!使用一些 JS 应该是可能的(不仅仅是 getElementById('style)' 是同一件事,而是layers.pos。)

      我最好的办法是尝试给你的 kb 一个position:absolute,然后转一周。

      尝试谷歌搜索z-index ie7 position absolute bug

      顺便说一句,如果您不熟悉它,http://crossbrowsertesting.com/ 是一个真正的自动屏幕截图的瑰宝,甚至可以在任何浏览器/操作系统组合中测试您的网站的实时 VNC。他们有免费试用版,至少可以进行几次试运行。此外,Firebug 非常适合在不实际修改文件的情况下对样式更改进行动态测试。

      【讨论】:

        猜你喜欢
        • 2013-12-09
        • 2013-07-07
        • 2015-10-08
        • 2012-10-13
        • 2021-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多