* Author:RDP
* My mail:abel1314520@gmail.com
* My blog: http://blog.teamhaka.com
*/
DOCTYPE有三种类型,大多数我们看到的是过度类型(过度:不完全严格遵守xhtml):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
DOCTYPE看上去貌似可有可无,比如在ff、chrome这类严格遵守标准的浏览器下,有没有首行的DOCTYPE声明似乎并没有什么影响。 但是在ie下,不正确的声明DOCTYPE的话,哪怕是高版本的ie,都有可能出现html的解析不遵守标准的情况。(我就在ie8下遇到div的width包括了内外边距的长度这种应该只出现在ie6、ie5的情况)
这里的不正确的声明DOCTYPE我试了下有2种情况:
1 不声明DOCTYPE:
在w3school上有这样一句话:【如果浏览器读到一个文件类型声明,那么它会按照“恰当”的方式来处理文档。如果没有 DOCTYPE,文档也许会以截然不同的方式显示出来。】
别让你的页面“截然不同”!别忘记添加DOCTYPE!
2 没有将DOCTYPE的声明位于页面内容的首行:
这里的页面内容指的是实际显示的html代码,即页面右键查看到的源代码。首行的解释如下:
2.1把DOCTYPE放在你html源代码文件的第一行 => OK(这是最字面的理解)
2.2DOCTYPE声明语句前有半角空格、回车、tab => OK
2.3DOCTYPE前有全角空格、内容输出、甚至是html的注释 => 错误! 这些都会导致浏览器(好像就ie。。。)无法正确读到你页面的文件类型声明!导致不按标准解析!