Firefox与Chrome的绝对定位

时间:2011-10-20 15:01:14

标签: html google-chrome firefox

我在使用jQuery创建菜单时遇到问题,我已经归结为下面的问题。此示例代码在Firefox和Chrome中的呈现方式不同:

HTML:

<table id="topTable">
    <tr>
        <td>
            <div id="outer">
                OuterDiv
                <div id="inner">
                    InnerDiv
                </div>
            </div>
        </td>
    </tr>
</table>

CSS:

#topTable {
    position: absolute;
    top: 50px;
}

#outer {
    background-color: Red;
}

#inner {
    background-color: Blue;
    position: absolute;
    top: 0px;
    left: 100px;
}

在Firefox中,“outer”元素在页面下方显示50px,但“inner”元素位于页面的最顶部。在Chrome中,“内部”div略高于50px,但远不及页面顶部。有人能解释为什么我会看到这种不同的行为吗?我注意到将“position:absolute”添加到“outer”元素会导致示例在每个浏览器上呈现相同的内容,但这会影响我实际菜单代码的样式。如果我能理解这里发生了什么,我可以弄清楚我需要采取哪些方向来修复我的实际代码。有什么想法吗?

2 个答案:

答案 0 :(得分:6)

为#outer

添加position:relative;
#outer {
    background-color: Red;
    position:relative;
}

参见:http://jsfiddle.net/5XWcD/1/,我在FF6.02和chrome 11.0

进行了测试

答案 1 :(得分:0)

在父节点中设置相对位置

.classParent{
    position: relative;
}

再次调整顶部和左侧