DOCTYPE介绍

        今天我们来说一说使用html我们一般不太注意的DOCTYPE这个标签。 DOCTYPE 是什么呢? 这个就是接下来我们研究的问题。

        当我们使用浏览器来显示内容的时候,就需要使用文档解析器 来对文本进行解析。

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

        其实文档的解析模式为两种:

                1.BACKCOMPAT:怪异模式,浏览器直接的模式解析渲染页面。

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

      浏览器根据你声明的DOCTYPE 来规定来使用哪种模式,如果当文档中没有定义DOCTYPE属性,浏览器默认采用自己的怪异模式来对文档进行解析渲染。(这样一般会出现   一个浏览器显示的内容一个样,各个浏览器之间的内容不能统一微笑)

     使用DOCTYPE这个属性来声明文档类型也很简单(就是当文档标签<html>上面添加标签<!DOCTYPE html>)

     下面我们类具体分析一下这个属性中的内容吧!

      DOCTYPE的语法
           HTML 顶级元素 可用性 “注册//组织//类型 标签//定义 语言”"URL”

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

      看到上面的代码相信大家对此都很熟悉吧! 但是具体它们都有什么作用相信大家也不是很注意,一般平时拿来用就可以了偷笑!!!!!!!!!

      下面咱们来看看这些属性都是用来干什么的吧!

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

              2.<!DOCTYPE> 声明对大小写不敏感。

              3.<!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。

              4.在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。

              5.HTML5 不基于 SGML,所以不需要引用 DTD。

              6.顶级元素(指定DTD中声明的顶级元素类型,这与声明的SGML文档类型相对应。默认html,如下图)

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

              7.可用性(指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。PUBLIC默认,可公开访问的对象。SYSTEM系统资源,如本地文件或URL等。如下图所示)

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

              8.注册(指定组织是否由国际标准化组织(ISO)注册。+默认,组织名称已注册。-组织名称未注册,Internet工程任务组(IETF)和万维网协会(W3C)并非注册的IOS组 织,如下图所示)

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

              9.组织(指定表明负责由!DOCTYPE声明引用的DTD的创建和维护的团体或组织的名称,即OwnderID。 IETF IETF、W3C  W3C。如下图所示)

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

            10.类型(指定公开文本类,即所引用的对象类型。DTD默认DTD。如下图所示)

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

            11.标签(指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。 HTML 默认。HTML)

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

            12.定义 ( 指定文档类型定义 。Frameset 框架集文档。Strict 排除所有 W3C 专家希望逐步淘汰的代表性属性和元素,因为样式表已经很完善了。Transitional 包含除 frameSet 元素的全部内容)

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

            13.语言 (指定公开文本语言,即用于创建所引用对象的自然语言编码系统。该语言定义已编写为 ISO 639 语言代码(大写两个字母)。 EN 默认。英语 )

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

            14.URL (指定所引用对象的位置)

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

        我们选择什么样的DOCTYPE?

          理想情况我们因该选择严格型的DTD,但对于目前多数设计师来说Transitional(过渡型)是理想选择(非框架页面)。因为这种DTD还允许我们使用表现层的标识、元素和属性(例如font,b,center等纯粹用于控制表现的标签以及align,bgcolor等属性),也比较容易通过W3C的代码校验。

       (2)理解文档类型(DOCTYPE)及对浏览器布局的影响

          HTML 4.01有3种文档类型:strict、transitional和frameset。XHTML 1.1有一种文档类型,但XHTML1.0有3种,就像HTML 4.01一样,HTML文档中只能选择一种文档类型定义,可以使用下列的任何一种:

         HTML 4.01 Strict DTD:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

        "http://www.w3.org/TR/html4/strict.dtd">

       HTML 4.01 Transitional DTD:

       <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

       "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">

       HTML 4.01 Frameset DTD:

       <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"

       " http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd">

       XHTML 1.0 Strict DTD:

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

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

       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"

       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

       XHTML 1.1 DTD:

       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

       这是使用了XHTML 1.1文档类型定义的一个基本页面,页面中包含要求的head、body和html标签。

       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

       <html>

       <head>

       <title>XHTML DTD</title>

       </head>

       <body>

       <p>XHTML requires having a DTD in every document otherwise it won't pass muster

       with the validators.</p>

       </body>

       </html>

       文档类型(DOCTYPE),简称为DTD,定义了HTML和XHTML文档的建筑块,同时告诉浏览器和验证器您的文档使用的HTML或XHTML的版本。每一个Web页面都必须有文档类型声明,这个声明放在HTML元素之前,这样才能保证标签和CSS是符合标准的,浏览器才会用合适的文档类型来处理网页。

XHTML要求必须有文档类型,否则页面就是无效的,浏览器也会陷入quirk模式,用意想不到的方式去解析页面,会将网页标签的书写方式当成非法的。因此即使这些XHTML和CSS代码完美无缺,浏览器也不能正确地渲染页面。

W3C组织提供了HTML验证器和CSS验证器,可用于检验文档的正确性。但如果没有文档类型定义,验证器也只能束手无策

没有定义文档类型,或者定义的文档类型较老,或者文档类型的定义方式不正确,都会导致浏览器用quirks模式错误地渲染页面。有的情况下,具体与浏览器有关,部分内容会根据W3C的指示生成。

图1-30和1-31展示了Web文档在使用同样标记的情况下,IE 6.0怎样用quirks mode渲染包含一个宽度为100%的div元素的表格,以及该页面在标准模式下的表现是怎样的。

HTML 4.01关于DTD的阐述:http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.3;W3C验证器:http://www.w3.org/QA/Tools/#validators;“A List Apart”关于文档类型的文章:http://www.alistapart.com/stories/doctype/;关于“QuirksMode”的文章:http://www. quirksmode.org/index.html?/css/quirksmode.html ;Mozilla关于quirks Mode的技术信息,解释了不同模式的区别以及如何处理quirks模式:http://developer.mozilla.org/en/docs/ Mozilla%27s_Quirks_Mode ;Opera的文档类型专栏:http://www.opera.com/docs/specs/ doctype/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值