doctype是什么:它是HTML文档第一行的文档类型声明,不是HTML标签,核心作用是强制浏览器进入标准渲染模式,避免进入混杂怪异模式;HTML5仅需简写,必须放在文档最顶端,前面不能出现任何字符,一旦遗漏,CSS盒模型、布局样式会出现多浏览器不一致的错乱问题,仅适用于网页HTML文档,纯文本、JS、CSS文件不需要添加该声明。
doctype的核心属性
doctype大小写不敏感,和都能正常生效,不需要闭合标签,也不会被页面渲染出来。
不同HTML版本doctype写法对比
| 文档版本 | doctype代码 | 渲染模式 |
|---|---|---|
| HTML5 | 标准模式 | |
| HTML4.01Strict | 带DTD完整声明 | 标准模式 |
| 无doctype | 不写任何声明 | 混杂怪异模式 |
容易踩坑的边界条件
只要doctype前面存在空格、注释、XML声明,IE9及更早版本就会自动切换到怪异模式,页面布局会出现明显偏差。
HTML5不再依赖SGML与DTD文件,所以不用填写冗长的DTD地址,只用最简写法即可,这是WHATWGHTML标准明确规定的写法。