在 html 页面中首行 <!DOCTYPE> 的作用是告诉浏览器当前页面使用哪个 html 版本进行编写的指令。
我们现在使用的 html5 就是 <!DOCTYPE HTML> 形式,而较早之前使用的是 html4.01 的版本。
在 HTML 4.01 中,<!DOCTYPE> 需要声明引用 DTD,因为 HTML 4.01 基于 SGML(标准通用标示语言)。DTD 可以规定标记语言的不同规则(比如 strict 版本只包含所有 html 元素和属性,不包含展示性和弃用的元素,另外不允许使用框架集frameset),这样浏览器才能正确地呈现内容。
html4.01 strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
html4.01 loose
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
html 4.01 frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">