在IE7标准符合性模式下,内部div高度不会扩展填充绝对定位的外部div

时间:2012-03-09 23:40:15

标签: css internet-explorer-7

这里发生了什么,以及如何解决?

下面的标记会创建一个灰色div,它会扩展以适合窗口,但在顶部和右边缘上缩短100像素。然后它会创建一个内部粉红色div,它应该填满整个灰色div。

元标记强制我的IE8浏览器在IE7标准合规模式下呈现 - 并且 打破 布局。粉色div不会填充以扩展其父级的全高。它显示只有大约20像素高。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=7">
        <title></title>
        <style type="text/css">
            #canvas {
                background-color: #eee;
                position: absolute;
                top: 100px;
                right: 100px;
                bottom: 0;
                left: 0;
            }
            .fill {
                background-color: pink;
                height: 100%;
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div id="canvas">
            <div class="fill"></div>
        </div>
    </body>
</html>

现代浏览器中的一切看起来都很好(经过Firefox和Chrome测试)。

1 个答案:

答案 0 :(得分:0)

尝试重置“CSS”:

/* RESET YOUR CSS CODE */
*{ margin:0;padding:0;outline:0;height:auto;... bla bla bla ....}
您在HTML doc中

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=7">
        <title></title>
        <style type="text/css">
            /* RESET CSS */
            *{ margin:0;padding:0;outline:0;height:auto; }

            /* YOUR CODE */
            #canvas {
                background-color: #eee;
                position: absolute;
                top: 100px;
                right: 100px;
                bottom: 0;
                left: 0;
            }
            .fill {
                background-color: pink;
                height: 100%;
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div id="canvas">
            <div class="fill"></div>
        </div>
    </body>
</html>