1.定义

DOCTYPE标签是一种标准通用标记语言的文档类型声明,目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来解析文档。

<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。

2.作用

声明文档的解析类型(document.compatMode),避免浏览器的怪异模式。

document.compatMode:

BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。

CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。

这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat,浏览器按照自己的方式解析渲染页面,那么,在不同的浏览器就会显示不同的样式。

如果你的页面添加了<!DOCTYPE html>那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。

这就是<!DOCTYPE html>的作用。

3.使用方式

HTML 5: 

<!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 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">

最新文章

  1. AOPR弹出Order Now窗口怎么办
  2. HighCharts日期及数值格式化
  3. Linux_安装软件包
  4. lucene源码地址
  5. object_c函数多个返回值
  6. leetcode 150. Evaluate Reverse Polish Notation ------ java
  7. 《学习OpenCV》练习题第四章第三题b
  8. javaweb学习总结十九(http协议概述以及http请求信息分析)
  9. [转载]C++中声明与定义的区别
  10. 《JavaScript 闯关记》之事件
  11. iOS系统原生二维码条形码扫描
  12. Android:抄QQ照片选择器(按相册类别显示,加入选择题)
  13. JS获取字符串实际长度
  14. webpack vue2.0项目脚手架生成的webpack文件
  15. ABAP 内表数据 与 Json串 相互转换
  16. [置顶] Xamarin android如何调用百度地图入门示例(一)
  17. centos7配置mysql
  18. Bootstrap源码分析系列之初始化和依赖项
  19. 超级简单!80行代码实现Google日历(拖放、移动、AJAX)
  20. java for语句

热门文章

  1. python3的嵌套函数
  2. 【转载】Java 9 新特性——模块化
  3. 关于开发环境无法运行applet
  4. WPF实现WORD 2013墨迹批注功能
  5. Mac 10.12安装SecureCRT
  6. Linux快速查看某条命令的版本和存放的位置(ls -l `which mvn`)
  7. Python3 print()函数sep,end,file参数用法练习
  8. springboot: mybatis逆向工程
  9. hibernate3.3.2搭建log4j日志环境
  10. Path;Paths和Files;FileVisitor