一、什么是<!DOCTYPE>?

<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前,<!DOCTYPE> 声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本,以便于浏览器的解析器使用正确的文档标准解析这个文档。若声明错误或未声明会导致文档以怪异模式呈现。

注意:1.<!DOCTYPE> 标签没有结束标签。

2.<!DOCTYPE> 声明不区分大小写。

3.总是先给 HTML 文档添加 <!DOCTYPE> 声明,确保浏览器能够预先知道文档类型。

二、HTML常见的 DOCTYPE 声明

1.HTML 5

HTML5 不是基于 SGML,因此不要求引用 DTD(Document Type Definition,中文意思为“文档类型声明”)。HTML5 中仅规定了一种DOCTYPE声明:

<!DOCTYPE html>

2.HTML 4.01 

在 HTML 4.01 中,<!DOCTYPE> 声明需引用 DTD (文档类型声明),因为 HTML 4.01 是基于 SGML (Standard Generalized Markup Language 标准通用标记语言)。DTD 指严格的文档类定义定了标记语言的规则,确保了浏览器能够正确的渲染内容。HTML 4.01 规定了三种不同的 <!DOCTYPE> 声明,分别是:Strict(严格的文档类声明)、Transitional (过度的文档类声明)和 Frameset(框架集文档类声明)。

1)HTML 4.01 Strict

这个 DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素(如 font )。框架集是不允许的。

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

2)HTML 4.01 Transitional

这个 DTD 包含所有 HTML 元素和属性,包括表象或过时的元素(如 font )。框架集是不允许的。

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

3)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">

3.XHTML声明

1)XHTML 1.0 Strict

这个 DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素(如 font )。框架集是不允许的。结构必须按标准格式的 XML 进行书写。

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

2)XHTML 1.0 Transitional

这个 DTD 包含所有 HTML 元素和属性,包括表象或过时的元素(如 font )。框架集是不允许的。结构必须按标准格式的 XML 进行书写。

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

3)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">

4)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">

4.HTML 元素和有效 DOCTYPES

以下链接中的表格列出了所有的 HTML5/HTML 4.01/XHTML 元素,以及它们会出现在什么文档类型 (!DOCTYPE) 中,效果如

图。

!DOCTYPE声明相关推荐

  1. DOCTYPE声明的几种类型

    DOCTYPE声明的几种类型 DOCTYPE 声明决定着浏览器怎么去解析和渲染当前页面,所以对于页面来说是很重要的. HTML5时代,统一用 <!DOCTYPE html> 这样简单的方式 ...

  2. DOCTYPE声明作用及用法详解

    一.浏览器呈现模式和doctype 有的网页是遵循标准而创作的,但也有很多不是.即使你不能创建遵循标准的网页,也希望浏览器根据标准来正确显示那些页.目前,大量网页充斥着大量非标准代码,它们仍能正常地工 ...

  3. DOCTYPE声明对JS获取窗口宽度和高度的影响【转】

    [摘注]:以下说法不准确,不是有没有DOCTYPE声明,而是不同的DOCTYPE声明对js的处理有影响. 在没有DOCTYPE声明的情况下: document.body.clientWidth doc ...

  4. doctype声明的意义

    1.DOCTYPE是document type(文档类型)的简写,在Web设计中用来说明你用的XHTML或者HTML是什么版本. 要建立符合标准的XHTML网页,DOCTYPE声明是必不可少的关键组成 ...

  5. 为什么要用!DOCTYPE声明

    实例: 我们经常会看到类似这样的代码: <!DOCTYPE html> <html> <head> <title>文档的标题</title> ...

  6. doctype声明、浏览器的标准、怪异等模式

    doctype 标准(严格)模式(Standards Mode).怪异(混杂)模式(Quirks Mode),如何触发,区分他们有何意义? 触发标准模式 1.加DOCTYPE声明,比如: <!D ...

  7. java doctype_HTML !DOCTYPE 声明 | 菜鸟教程

    HTML 声明 实例 文档标题文档内容...... 尝试一下 » 浏览器支持 所有主流浏览器都支持 声明. 标签定义及使用说明 声明位于文档中的最前面的位置,处于 标签之前. 声明不是一个 HTML ...

  8. DOCTYPE 声明

    DOCTYPE 声明标题 文章目录 DOCTYPE 声明标题 Doctype作用?严格模式与混杂模式如何区分?它们有何意义? Doctype定义 作用 严格模式与混杂模式如何区分? 意义 Doctyp ...

  9. 2019-7-22 [HTML] 基本结构 DOCTYPE声明 标签:[title meta 标题 段落 换行 加粗 斜体 下划线] 注释 特殊字符 img标签 a标签

    文章目录 0.HTML网页技术(基础) 1 HTML概述 1.1 什么是HTML? 1.2 Hello,HTML! 2 HBuilder的安装与使用 2.1 安装HBuilder 2.2 使创建项目 ...

  10. DOCTYPE声明方式

    工作了这么久不知道DOCTYPE的作用是什么,更不知道不同声明方式之间的差异,水平小菜凭这点一下就暴露了,惭愧惭愧!查阅文档整理如下: 1. 标准模式与混杂模式 由于历史发展的原因,不同浏览器对同一个 ...

最新文章

  1. 【C语言】一些简单编译错误或警告
  2. Brocade IP 产品配置 与Cicso比较
  3. JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
  4. 基于android的考勤定位算法,基于移动定位服务的考勤管理系统
  5. 解决OutOfMemoryError: unable to create new native thread问题
  6. 在虚拟机中安装和配配置 MOSS2007 全过程
  7. 《奠基计算机网络》2011年8月15日出版 视频下载 http://www.91xueit.com
  8. 【2021ACL】NLP的应用
  9. Wireshark实战分析之IP协议(二)
  10. CmsEasy7.6.3.2逻辑漏洞
  11. 漏洞复现|Microsoft Office数学公式编辑器内存损坏漏洞(CVE-2017-11882 )
  12. 3西格玛计算公式_3西格玛的计算原理是什么?为什么用它来衡量品质的好坏?...
  13. 图文讲解如何在outlook里设置绑定Gmail企业邮箱教程
  14. 3.3. debug ip igrp
  15. 以莺尾花数据集为例,探讨R模型部署之道
  16. 局域网内即时通信软件 ZSCQ -工作进度记录表
  17. Highcharts插件常用配置
  18. 【转】VB6和VB.NET的区别
  19. 通信网基础作业答案整理
  20. 二维数组8:设计题 RingBuffer的原理和实现

热门文章

  1. 暴力破解———罗马数字逆向解法,猜年龄利用位数信息,罗马数字的枚举解法
  2. 对话百度资深工程师辜斯缪 解密百度实体搜索
  3. 关系数据库标准语言SQL
  4. 记录我的caffe2 vs2017安装过程
  5. 网络编程实战之高级篇, 彻底解决面试C10k问题, 高并发服务器, IO多路复用, 同时监视多个IO事件
  6. 【原创】电脑为什么会慢?C盘空间越来越小?怎么清理?请看本文
  7. windows7环境下安装centos7,双系统切换
  8. Cadence OrCAD Capture标准化设计AliasRot功能介绍图文与视频演示
  9. 《程序员养成记》第7集 珍爱生命远离编程
  10. mysql中statement_Statement (操作 SQL 语句)