这个声明常常被前端程序员忽视,我刚进入前端领域也几乎忽略了这个东西,一方面感觉这个东西太复杂(在html5到来之前),写在代码顶端,一方面感觉没什么用,因为面试提到了这个东西,今天就和大家分享一下。
一、这个声明是什么,有什么用?
答:首先先解释下这个声明不是html标签,它是为浏览器提供一项声明,因为html有很多版本,版本规则不一样写法也有差异,要想让浏览器正确地显示html页面,必须要让浏览器知道这个html文件是哪一个版本,这就是声明的用处。
二、到现在为止,有多少个版本?
版本 | 年份 |
HTML | 1991 |
HTML+ | 1993 |
HTML 2.0 | 1995 |
HTML 3.2 | 1997 |
HTML 4.01 | 1999 |
XHTML 1.0 | 2000 |
HTML5 | 2012 |
XHTML5 | 2013 |
三、声明的用法
声明必须在HTML文档第一行,位于<html>标签之前,没有结束标签,不区分大小写,
声明不是标签,它指示web浏览器关于页面使用哪个html版本进行编写,
在html 4.01中,声明引用dtd,因为这个版本是基于SGML,dtd规定了标记语言的规则,这样浏览器才能正确的呈现内容
html5声明写法:
<!DOCTYPE html>
HTML 4.01 Strict声明写法(该DTD包含所有HTML元素和属性,但不包括展示性的和弃用的元素(比如font),不允许框架集Framesets):
<!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):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset声明写法(该DTD包含所有HTML元素和属性,包括展示性的和弃用的元素(比如font),允许框架集Framesets):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">