位置:在IE9中修复了中断

Dut*_*432 6 css internet-explorer css-position

我有一个网站,大量利用jQuery和CSS来实现一些非常好的效果.这些页面在FF和Chrome中完美运行 - 但是在IE9(以及可能的其他版本的IE)中,由于浏览器似乎忽略了我的position:fixed;属性,我的页面似乎格式错误.我想我的问题是:什么可能导致这种情况(几乎全球遍布我的网站)发生?我知道没有一个完整的代码示例很难说,但我想知道是否有人以前见过这个.有很多 CSS所以我不确定什么是相关的帖子和​​什么不相关.如果需要更多代码,请告诉我.

示例1:模拟窗口开始按钮菜单的工具栏

在下面的示例中,您将看到我已经实现了一个模仿Windows"开始"按钮行为的工具栏.它位于左下角,单击时会展开以显示内容.此功能在Ch/FF中运行良好,但正如您在IE9中看到的那样,工具栏及其内容将附加到页面底部.我在IE9中使用这个方法掀起了一个快速的JSFiddle,它似乎工作正常......我不确定我的文档可能有什么不同导致它停止工作.

奇怪的事情:如果我将CSS更改为position:absolute;,则div正确放置并且函数的正确率为99% - 它不会随页面滚动.

图1为示例1

#floatingOptions{
    background:#fff;
    border-right:2px solid #000;
    border-bottom:2px solid #000;
    bottom:0px;
    display:none; /*this gets shown via javascript */
    left:0px;
    overflow:hidden;
    position:fixed;
    width:250px;    
    z-index:99999;

}
Run Code Online (Sandbox Code Playgroud)

示例2:通过jQuery Tools Overlay的模态Windows

我的许多模态窗口都是使用jQuery Tools Overlay生成的.再次,这在Ch/FF中运行良好,但IE9再次将模态div添加到页面底部(更不用说看似忽略z-index).

在此输入图像描述

UPDATE

这是我的doctype/html语句

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
Run Code Online (Sandbox Code Playgroud)

我想到了.这是一个POBKAC错误(键盘和椅子之间出现问题).

<!DOCTYPE....>被召唤进去,header.php而且我在某些页面上这样做是愚蠢的.

<style type="text/css">
    @import url(/themes/pn5/jquery.ui.all.css);
    @import url(/qtip/jquery.qtip.css);
</style>
<?php include ('header.php'); ?>
Run Code Online (Sandbox Code Playgroud)

因此在<!DOCTYPE>声明之前将样式放入代码中.切换它,问题就消失了.

感谢大家!

thi*_*dot 17

最可能的原因是您的页面以Quirks模式显示.

Internet Explorer比任何其他浏览器都要多,它会在Quirks模式下搞砸你的页面.

按F12打开开发人员工具以找出正在使用的模式.

如果它确实是Quirks模式,最可能的原因是你忘了添加一个doctype作为第一行:

<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)

如果您已有doctype,则还有其他可能的原因.