使用margin auto的中央对齐在IE7中不起作用

时间:2012-12-20 11:32:35

标签: html css internet-explorer-7

我有一个页脚菜单,它应该在屏幕上水平居中,内部元素然后在页脚容器内水平居中(见下图)。除了IE7(这是我们希望支持的IE的最低版本)之外,这在所有浏览器中都能正常工作。我不明白为什么这不起作用。我已经在这个小提琴中复制了代码,但小提琴也似乎不正确地对齐(所以如果需要,我可以提供指向该网站的链接):

http://jsfiddle.net/jezzipin/tz5Ym/

有没有人知道为什么这不能在IE7中运行?我是否需要执行IE7特定的黑客攻击?

在其他人说出明显之前:

  • 是的,我已经在使用保证金:auto用于水平边距。
  • 是的,我已经宣布了我的Doctype

    jme1988
    

正确显示: Correct Display

IE7显示: IE7 Display

3 个答案:

答案 0 :(得分:3)

您是否愿意在代码中使用CSS hacks?如果是这样,您可以使用每个浏览器的CSS实现中的已知错误来定位特定的IE版本。请参阅NetTuts post on the subject

例如:

body {  
  color: red; /* all browsers, of course */  
  color : green\9; /* IE8 and below */  
  *color : yellow; /* IE7 and below */  
  _color : orange; /* IE6 */  
} 

答案 1 :(得分:1)

填充似乎不适用于非块元素,所以我不得不使用:

display: block;

强制IE7接受样式。

答案 2 :(得分:-1)

对于您想要居中的元素使用绝对宽度时,使用以下内容是旧版Internet Explorer的解决方法:

div.center{
  width:1024px;
  left:50%;
  margin-left:-512px;
}

另外:你宣布了你的doctype吗?