IE7位置绝对有保证金自动错误

时间:2013-02-08 15:54:38

标签: html css internet-explorer-7

我在IE7中的定位和边距有问题。我有绝对位置和汽车保证金的div。

position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
margin: auto;

此div应该以其相对位置parent为中心。但在IE7中这不起作用。以下是工作代码http://jsfiddle.net/3zwkA/

的示例

3 个答案:

答案 0 :(得分:3)

如果你想把它的父母中的div完全居中,你应该这样做:

.child {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50px;
    height: 50px;
    margin-left:-25px;
    margin-top:-25px;
    border: 1px yellow solid;
}

请参阅更新的jsfiddle

答案 1 :(得分:2)

CSS中的垂直居中是PITA,尤其是当您还需要IE7(甚至是IE6)支持时。 There are many ways to do it,但每个都有一些缺点。您的方法对应于链接文章中的方法4,并且已知IE中的故障< 8。

对于具有固定宽度和高度的元素,更稳健的方法(文章中的方法2)包括将其定位在top: 50%; left: 50%并从顶部和左边距减去一半宽度。这适用于所有浏览器。 Here, have a fiddle

答案 2 :(得分:2)

我个人去“破解”是因为使用left和top放置元素,然后使用负边距正确移动

position: absolute;
top: 50%;
left: 50%;
width: 50px;
height: 50px;
margin: -25px 0 0 -25px;  //move it left by half the width