HTML <!DOCTYPE> 声明HTML <!--...--> 注释标签HTML <bdi> 标签HTML <base> 标签HTML <b> 标签HTML <audio> 标签HTML <article> 标签HTML <aside> 标签HTML <area> 标签HTML <address> 标签HTML <abbr> 标签HTML <a> 标签HTML <cite> 标签HTML <caption> 标签HTML <canvas> 标签HTML <button> 标签HTML <br/> 标签HTML <body> 标签HTML <blockquote> 标签HTML <bdo> 标签HTML <command> 标签HTML <colgroup> 标签HTML <code> 标签HTML <col> 标签HTML <del> 标签HTML <details> 标签HTML <dd> 标签HTML <datalist> 标签HTML <em> 标签HTML <dt> 标签HTML <dl> 标签HTML <div> 标签HTML <dialog> 标签HTML <dfn> 标签HTML <header> 标签HTML <form> 标签HTML <head> 标签HTML <footer> 标签HTML <font> 标签HTML <figure> 标签HTML <figcaption> 标签HTML <embed> 标签HTML <fieldset> 标签HTML <kbd> 标签HTML <ins> 标签HTML <input> 标签HTML <img> 标签HTML <i> 标签HTML <hr> 标签HTML <html> 标签HTML <h1> - <h6> 标签HTML5 <hgroup>标签HTML <map> 标签HTML <link> 标签HTML <li> 标签HTML <label> 标签HTML <legend> 标签HTML <keygen> 标签HTML <object> 标签HTML <noscript> 标签HTML <meter> 标签HTML <nav> 标签HTML <meta> 标签HTML <menu> 标签HTML5 <mark> 标签HTML <option> 标签HTML <output> 标签HTML <optgroup> 标签HTML <ol> 标签HTML <rp> 标签HTML <rt> 标签HTML <q> 标签HTML <progress> 标签HTML <pre> 标签HTML <param> 标签HTML <p> 标签HTML <script> 标签HTML <samp> 标签HTML <s> 标签HTML <ruby> 标签HTML <style> 标签HTML <strong> 标签HTML <strike> 标签HTML <span> 标签HTML <source> 标签HTML <small> 标签HTML <select> 标签HTML <section> 标签HTML <tfoot> 标签HTML <th> 标签HTML <textarea> 标签HTML <td> 标签HTML <tbody> 标签HTML <table> 标签HTML <sup> 标签HTML <sub> 标签HTML <summary> 标签HTML <video> 标签HTML <var> 标签HTML <ul> 标签HTML <u> 标签HTML <tt> 标签HTML <track> 标签HTML <tr> 标签HTML <title> 标签HTML <time> 标签HTML <thead> 标签HTML <wbr> 标签

HTML <!DOCTYPE> 声明

html <!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前

<!DOCTYPE> 声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本

在 HTML 4.01 中,<!DOCTYPE> 声明需引用 DTD (文档类型声明),因为 HTML 4.01 是基于 SGML (Standard Generalized Markup Language 标准通用标记语言)

DTD 指定了标记语言的规则,确保了浏览器能够正确的渲染内容

HTML5 不是基于 SGML,因此不要求引用 DTD

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

<!DOCTYPE> 标签没有结束标签

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

范例

<!DOCTYPE html>
<meta charset="utf-8"> 
<body>
文档内容......
</body>

HTML 4.01 与 HTML5之间的差异

HTML 4.01 设置了三种不同的 <!DOCTYPE> 声明,分别是:

  1. Strict

  2. Transitional

  3. Frameset

HTML5 中仅设置了一种

<!DOCTYPE html>

常见的 DOCTYPE 声明

HTML 5

<!DOCTYPE html>

HTML 4.01 Strict

这个 DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素 ( 如 font )

框架集是不允许的

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

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

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 )

框架集是不允许的

结构必须按标准格式的 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 )

框架集是不允许的

结构必须按标准格式的 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">