1、<!DOCTYPE>
定义和用法
<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。
<!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。
HTML5 不基于 SGML,它是基于最新的HTML标准,所以不需要引用 DTD。
提示:请始终向 HTML 文档添加 <!DOCTYPE> 声明,这样浏览器才能获知文档类型。
常用的 DOCTYPE 声明
HTML 5
<!DOCTYPE html>
HTML 4.01 Strict
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。
HTML Strict(严格类型) - HTML 当中最严格的文档类别,例如要是网页里有 frameset 这种 Microsoft 开发的非标准 HTML 语法、它就会认定你的 HTML 是非国际标准、然後验证不通过,HTML 专业开发者常用,页面里几乎不准使用 inline-style 的 CSS 样式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。
HTML Transitional(过渡类型) - HTML 当中最常见的非严格验证文档类别,例如把 <img> 没封口,它也会略过这种格式验证… 一句话就是普通开发网页会用到的 HTML 类别,只要写的别错得太过份它都会认同你的 HTML 可以通过
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset
该 DTD 等同于 HTML 4.01 Transitional,
但允许框架集内容。
HTML Frameset(框架类型) - 以前 Table 满街走的年代、Frameset 处理 iframe 作为内容动态转换的必需 HTML 文档类别,也是 3 种文档类别中最随便的,因为支持 Microsoft 专用语法也比较多,例如 <font> 标签
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">