IE中的margin:auto

在Google中搜索”margin auto IE”, 会出现很多类似“IE下面margin:auto不工作!”的结果;可见,这是一个比较普遍的问题。

IE支持margin:auto吗?答案是:IE6及其后的浏览器支持margin:auto, IE5.5之前的不支持。从MSDN上可以找到证据:http://msdn.microsoft.com/en-us/library/bb250395(v=VS.85).aspx

但是IE5.5之前的浏览器占比应该比较小,为什么还是有很多人报”bug”说“IE下面margin:auto不工作!”呢?问题出在DOCTYPE与怪异模式(Quirks Mode)上:如果html文件未定义DOCTYPE的话,浏览器将以怪异模式(Quirks Mode)来解析该html文档。对于IE来说,这意味着将以IE5.5的方式来打开html;而对于其它高级浏览器来说问题并不存在,因为它们在怪异模式下仍能识别margin:auto。

因此,解决问题的方法很简单,那就是加上DOCTYPE的声明:

<!DOCTYPE html>  

MSDN上的一句话可以很好的总结这一切:

You can use this value with Internet Explorer 6 or later when the !DOCTYPE declaration in your document switches on standards-compliant mode.