深刻理解DOCTYPE的做用

        如今的代码编辑器愈来愈人性化,各类插件、快捷键都可以帮助咱们快速生成代码。好比:使用vscode编辑器在html文档中输入!再按tab键就能快速生成一个完整的html结构。如图所示html

        今天咱们要说的不是代码编辑器,咱们将目光移到文档的顶部,会发现顶部有一个<!DOCTYPE html>声明,不少人不知道这个这个声明有何做用,甚至还想把它给删除。前端

1.DOCTYPE的做用

        DOCTYPE是document type (文档类型) 的缩写。<!DOCTYPE >声明位于文档的最前面,处于标签以前,它不是html标签。主要做用是告诉浏览器的解析器使用哪一种HTML规范或者XHTML规范来解析页面。浏览器

2.删除<!DOCTYPE>会发生什么?

        在W3C标准出来以前,不一样的浏览器对页面渲染有不一样的标准,产生了必定的差别。这种渲染方式叫作混杂模式。在W3C标准出来以后,浏览器对页面的渲染有了统一的标准,这种渲染方式叫作标准模式。<!DOCTYPE>不存在或者形式不正确会致使HTML或XHTML文档以混杂模式呈现,就是把如何渲染html页面的权利交给了浏览器,有多少种浏览器就有多少种展现方式。所以要提升浏览器兼容性就必须重视<!DOCTYPE>ruby

3.严格模式和混杂模式

         严格模式和混杂模式都是浏览器的呈现模式,浏览器究竟使用混杂模式仍是严格模式呈现页面与网页中的DTD(文件类型定义)有关,DTD里面包含了文档的规则。好比:loose.dtd微信

严格模式:又称标准模式,是指浏览器按照W3C标准来解析代码,呈现页面框架

混杂模式:又称为怪异模式或者兼容模式,是指浏览器按照本身的方式来解析代码,使用一种比较宽松的向后兼容的方式来显示页面。编辑器

4.常见的DOCTYPE声明

HTML5插件

<!DOCTYPE html>

HTML 4.01 Strict
该 DTD 包含全部 HTML 元素和属性,但不包括展现性的和弃用的元素(好比 font)。不容许框架集(Framesets)。code

<!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 4.01 Transitional,但容许框架集内容。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Strict
该 DTD 包含全部 HTML 元素和属性,但不包括展现性的和弃用的元素(好比 font)。不容许框架集(Framesets)。必须以格式正确的 XML 来编写标记。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional
该 DTD 包含全部 HTML 元素和属性,包括展现性的和弃用的元素(好比 font)。不容许框架集(Framesets)。必须以格式正确的 XML 来编写标记。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset

 

该 DTD 等同于 XHTML 1.0 Transitional,但容许框架集内容。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1

该 DTD 等同于 XHTML 1.0 Strict,但容许添加模型(例如提供对东亚语系的 ruby 支持)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

 

文章每周持续更新,能够微信搜索「 前端大集锦 」第一时间阅读,回复【视频】【书籍】领取200G视频资料和30本PDF书籍资料