HTML的DOCTYPE
HTML的DOCTYPE声明非常重要,可以避免不必要的BUG,请在每个页面声明DOCTYPE。
在没有定义DOCTYPE的页面,浏览器会根据自身的设置或自认为合适的方式去渲染页面,所以每个浏览器的呈现效果都不一样,兼容性极差。
定义了DOCTYPE的页面后,浏览器会根据W3C定义的标准对HTML执行渲染,兼容性将大大的改善。
以下部分引用至w3school:
<DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。
<!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。
HTML5 不基于 SGML,所以不需要引用 DTD。
提示:请始终向 HTML 文档添加 <!DOCTYPE> 声明,这样浏览器才能获知文档类型。
DOCTYPE类型
1.HTML 5
HTML5只有一种DOCTYPE,如下所示,HTML5向后兼容。他的概念是加载所有能加载的标签,不在有版本的概念,所以这里面只有这么一小句。
<!DOCTYPE html>
2.HTML 4.01 Strict
HTML4.01的严格模式,在此模式下不能使用展示性的和弃用的元素(比如 font),不允许框架集(Framesets),代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3.HTML 4.01 Transitional
HTML4.01的过度模式,可以使用所有HTML标签,最常用的HTML版本,不允许框架集(Framesets),代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
4.HTML 4.01 Frameset
HTML4.01与Transitional一样但是可以使用框架集,常用于框架集的首页,代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
5.XHTML 1.0 Strict
5.XHTML 1.0 Strict