<!DOCTYPE>标签

定义

DOCTYPE标签,是一种标准通用标记语言的文档类型声明,目的是告诉标准通用标记语言解析器,使用哪种文档类型定义(DTD)解析文档。

DOCTYPE,document type(文档类型)的简写,它指示浏览器对页面使用哪个HTML版本编译。

如果不写DOCTYPE标签,浏览器将无法获知HTML或XHTML文档的类型,就会进入怪异模式。

浏览器两种表现模式:

Standards Mode(Strict Mode)     标准模式(严格模式)浏览器使用自己的怪异模式解析绚烂页面

Quirks Mode(Compatibility Mode)    怪异模式(兼容模式)浏览器使用W3C的标准解析渲染页面

如果浏览器进入怪异模式,就会按自己的方式解析渲染页面,那么在不同的浏览器下会显示不同的样式。然而,只要文档正确定义DOCTYPE,浏览器就会进入标准模式。按照W3C的标准来解析渲染。你的页面在所有的浏览器下样式都保持一致。(备注:IE6以下版本永远进入怪异模式)

使用

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

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

浏览器支持:所有浏览器都支持<!DOCTYPE>声明。

常用的DOCTYPE声明

HTML 5

<!DOCTYPE html>

HTML 5与之前HTML 4.01<!DOCTYPE>声明的区别就在于,HTML 5不基于SGML,所以不需要引用DTD(文档类型定义)。HTML 4.01因为基于SGML,所以在<!DOCTYPE>声明中需要引用DTD。DTD规定了标记语言的规则,这样浏览器才能正确地呈现内容。

HTML 4.01 提供了三种DTD声明,不同的DTD对文档的类型要求严格程度不同。

HTML 4.01 Strict (严格型)

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

该DTD包含所有HTML元素和属性,但不包括展示性的和弃用的元素(如font)。不允许框架集(Framesets)。要求严格的DTD,你不能使用任何表现层的标识和属性。

HTML 4.01 Transitional(过渡型)

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

该DTD包含所有HTML元素和属性,包括展示性的和弃用的元素(如font)。不允许框架集(Framesets)。要求非常宽松的DTD,她允许你继续使用HTML 4.01的表示,但要符合XHTML的写法。

HTML 4.01 Frameset(框架型)

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

该DTD等同于HTML 4 Transitional,但允许框架集内容。专门针对框架页面设计使用的DTD,如果你的页面中包含框架,需要采用这种DTD。

理想情况下使用严格型的DTD,但对于很多刚接触Web标准的前端工程师来说,过渡型的DTD是目前理想的选择。因为过渡型DTD允许我们使用表现层的标识、元素和属性,也比较容易通过W3C的代码校验。

HTML 1.0 Strict

<!DOCTYPE HTML PUCLIC “-//W3C//DTD HTML 1.0//EN” “http://www.w3.org/TR/xhtml1/xhtml1-strict.dtd”>

该DTD包含所有HTML元素和属性,但不包括展示性的和弃用的元素(如font)。不允许框架集(Framesets)。必须以格式正确的XML来编写标记。

HTML 1.0 Transitional

<!DOCTYPE HTML PUCLIC “-//W3C//DTD HTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/xhtml1-loose.dtd”>

该DTD包含所有HTML元素和属性,包括展示性的和弃用的元素(如font)。不允许框架集(Framesets)。必须以格式正确的XML来编写标记。

HTML 1.0 Framesetyuxi

<!DOCTYPE HTML PUCLIC “-//W3C//DTD HTML 1.0 Frameset/EN” “http://www.w3.org/TR/xhtml1/xhtml1-frameset.dtd”>

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

XHTML 1.1

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

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

/*此随笔内容根据网上内容整理而成,非原创。如有侵权,表示歉意,请告知于我。*/

参考内容:

[1]W3School HTML<!DOCTYPE>标签:http://www.w3school.com.cn/tags/tag_doctype.asp

[2]为什么使用<!DOCTYPE HTML>:http://i.wanz.im/2010/05/28/why_doctype_html/

[3]doctype有几种:http://zhidao.baidu.com/link?url=-QnZIO9tbdL0R5pr23KsErf08Q0XVefDcniSASjhigLCCJ9dCzBLxw_FYOJcwJdH3aipQbZi89B3kjDyknRyIeY8lyL-t2VzvoFXtn_dOnC

时间: 2024-11-02 11:06:00

<!DOCTYPE>标签的相关文章

Django url 标签和reverse()函数的使用(转)

原文:http://www.yihaomen.com/article/python/355.htm 使用url标签和reverse()函数,可以避免在模板和view中对url进行硬编码,这样即使url改变了,对模板和view也没有影响 起初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了,这样带来一个问题,如果在urls.py 中修改了某个页面的地址,

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

HTML5之标签(二)

标签 描述 <!--...--> 定义html注释. <!DOCTYPE> 定义文档类型. <a> 定义锚和超链接. <abbr> 定义缩写. <address> 定义文档作者或拥有者的联系信息. <area> 定义图像映射内部的区域. <article> 定义文章. <aside> 定义页面内容之外的内容. <audio> 定义声音(音频)内容. <b> 定义粗体字. <bloc

HTML5之标签(一)

HTML标签分为块级元素和行内元素. 行内元素和块级元素区别 1.块级元素会独占一行,其宽度自动填满其父元素宽度:行内元素不会独占一行,相邻的行内元素会排列在同一行里,直到一行排不下,才会换行,其宽度随元素的内容变化而变化 2. 块级元素可以设置 width, height属性:行内元素设置width,  height无效 3. 块级元素可以设置margin 和 padding:行内元素的margin 和 padding在水平方向有效,竖直方向无效 4.行内元素和块级元素转换,通过设置CSS的d

第2天:HTML常用标签

今天学完主要对所学知识点进行了整理. 一.超链接ahref:www.baidu.com(跳转页面):id名(锚点跳到相应div位置):01.rar(压缩包) target:_blank(新窗口打开):_self(当前窗口打开)二.文件路径绝对路径:(1)线上:线上绝对路径(2)线下:完整路径 相对路径:src=../img/bg.jpg(../是上一级目录) 三.HTML常用标签section :版块 用于划分页面上的不同区域,或者划分文章里不同的节 header :页面头部或者版块(secti

frameset标签设计页面

重要事项:不能将 <frameset></frameset> 标签放在<body></body> 标签里.且 HTML5 已经不支持 frameset 标签的使用!!! 1.frameset 元素可定义一个框架集,它被用来组织多个窗口(框架).每个框架存有独立的文档.配合<frame></frame>框架的使用,我们可以对页面进行分割,局部刷新.合理的使用会给用户带来非常好的体验效果. 2.frameset 的几个属性: ①.cols

使用原生JavaScript实现对select增加option标签并附加value属性

好久没有写原生的东西了,今天写了一个小项目里面包含着option选项,所以我决定使用原生JavaScript动态生成, 本着互联网分享精神,我将本篇文章分享给大家. html代码(就是一个select) <select name="" id="reg-select"></select> json数据 var json = [ { "cc": "86", "code": "C

&lt;table&gt;标签总结(colspan跨列 ,rowspan跨行)

table标签有些内置属性要设置: <table cellpadding="0" cellspacing="0" border="0" summary="各银行的网上银行支付限额总表"> 1.摘要summary的内容是不会在浏览器中显示出来的.它的作用是增加表格的可读性(语义化), 使搜索引擎更好的读懂表格内容,还可以使屏幕阅读器更好的帮助特殊用户读取表格内容. 2.

java的基础标签

跨行业进入IT,感觉就像学习一门外语,基础标签就像英语中的单词是的,现在只会一个个单词,不会说话的感觉,痛苦呀. 1.文本格式控制标签 <font color="文本颜色" size="字体大小" face="什么字体">文本内容</font> <b></b>   字体加粗 <i></i>     字体倾斜  <em></em>强调,语气加强用 <

phpcms ——模板标签详细使用说明

使用phpcms总是要查询各种标签,实在很烦,只好找个比较全的来备查.因为自己写一个orm来配合调用也没那么容易无缝的嵌入到引擎当中. 获取父分类下面的子分类 {loop subcat(77) $k $v}{php $subcatid[] = $k;}{/loop}<?php $subcatid = implode(',', $subcatid);?>  结果可以用在sql 的in子句中 {template "content","header"} 调用根