码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-04-07 20:56:13      阅读:3215      评论:0      收藏:0      [点我收藏+]

标签:

每次写html页面开头基本都会加上这么两行:

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

***************************************************************************************************************

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

它表示声明doctype。如果一个网页没有声明doctype,它就会以默认的doctype来解析文档所有标签和css样式,ff和ie的解释标准是不一样的,所以可能会出现误差和问题。

 

语法:

html 顶级元素 可用性 注册//组织//类型 标签//定义 语言url

 

!DOCTYPE html 是文档类型命令,命令下包含文档的顶级元素即html,指定DTD中的顶级元素为html。

PUBLIC 文档类型可用性,默认是公开PUBLIC,可公开访问的对象。另还有system 系统资源,如本地文件或 url。

-  该字符表示注册的意思,指定由国际标准组织(iso)注册,加号+表示注册,减号-表示没有注册。W3C组织是没有注册的所以用减号-。

DTD XHTML 1.0   DTD定义文档类型,类型是XHTML,版本号是1.0。

Transitional      定义:指定文档类型定义。包含三种类型:框架型(frameset),严谨型(strict)和过渡型(transitional)。

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

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd      表示DTD规则引入的URL地址。可以下载该DTD下来看一下 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

 

*************************************************************************************************************** 

再看第二行:<html xmlns="http://www.w3.org/1999/xhtml">

xmlns是XHTML namespace的缩写。名字空间,相当于文档的一个名字。

 

名字空间是由xml产生的:由于xml允许自定义标签,但你定义的标签和其他人定义的标签有可能相同,但表示不同的含义。当文档交换或者共享的时候就容易产生错误。为避免这种错误产生,xml采用名字空间声明,允许你通过一个网址来识别你的标签。

例如:

A定义了如下xml标签:

<document>
    <name>书名</name>
    <author>作者</author>
    <content>目录</content>
</document>

B定义了如下xml标签:

<document>
    <title>论文题目</title>
    <author>作者</author>
    <content>论文内容</content>
</document>

A和B都有content标签,但A表示书的目录,而B表示论文内容。所以为了区分两个文档的content,给各自加上一个名字空间,这样就能正确解析它们的标签语义了:

<document xmlns="http://www.test.com/a">
    <name>书名</name>
    <author>作者</author>
    <content>目录</content>
</document>

B定义了如下xml标签:

<document xmlns="http://www.test.com/b">
    <title>论文题目</title>
    <author>作者</author>
    <content>论文内容</content>
</document>


XHTML是HTML到xml过度的一种标记语言,它需要符合xml文档规则,因此,也需要定义名字空间,又因为XHTML1.0不能自定义标识,所以,它的名字空间都相同,固定为:http://www.w3.org/1999/xhtml

xhtml的名字空间永远都是固定的,不变的,考虑到xml的兼容,所以给它加上名字空间;但其实它可要可不要,有些多余,所以在html5中将名字空间删除了。

 

***************************************************************************************************************

更多详细信息可参考该网页:http://www.ynpxrz.com/n875806c2029.aspx

内容如下:

在 默认情况下,ff和ie的解释标准是不一样的,也就是说,如果一个网页没有声明doctype,它就会以默认的doctype解释下面的html。在同 一种标准下,不同浏览器的解释模型都有所差异,如果声明标准不同,不用我说,您自己想就可以了。学习网页标准,浏览器兼容,从哪里开始您自己决定,但是, 请认识doctype:

一、什么是doctype

doctype是document type(文档类型)的简写,在页面中,用来指定页面所使用的xhtml(或者html)的版本。要想制作符合标准的页面,一个必不可少的关键组成部分就 是doctype声明。只有确定了一个正确的doctype,xhtml里的标识和css才能正常生效。

二、doctype的规则

doctype声明的写法遵循一定的规则,它指出阅读程序应该用什么规则集来解释文档中的标记。在web文档的情况下,“阅读程序”通常是浏览器或者校验器这样的一个程序,“规则”则是w3c所发布的一个文档类型定义(dtd)中包含的规则。

每个dtd都包括标记、attributes、properties等内容,它们用于标记web文档的内容;此外还包括一些规则,它们规定了哪些 标记能出现在其他哪些标记中。每个web建议标准(比如html 4 frameset和xhtml 1.0 transitional)都有自己的dtd。

以下是从手册上摘抄的规则:

语法:

html 顶级元素 可用性 注册//组织//类型 标签//定义 语言url

可能值:

- 顶级元素:指定 dtd 中声明的顶级元素类型。这与声明的 sgml 文档类型相对应。 html 默认。html。

- 可用性:指定正式公开标识符(fpi)是可公开访问的对象还是系统资源。 public 默认。可公开访问的对象。system 系统资源,如本地文件或 url。

- 注册:指定组织是否由国际标准化组织(iso)注册。 + 默认。组织名称已注册。

- 组织名称未注册。internet 工程任务组(ietf)和万维网协会(w3c)并非注册的 iso 组织。

组织:指定表明负责由 !doctype 声明引用的 dtd 的创建和维护的团体或组织的名称,即 ownderid。 ietf ietf。 w3c w3c。

- 类型:指定公开文本类,即所引用的对象类型。 dtd 默认。dtd。

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

- 定义:指定文档类型定义。

  frameset 框架集文档。

  strict 排除所有 w3c 专家希望逐步淘汰的代表性属性和元素,因为样式表已经很完善了。

  transitional 包含除 frameset 元素的全部内容。

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

- url:指定所引用对象的位置

为了获得正确的doctype声明,关键就是让dtd与文档所遵循的标准对应。例如,假定文档遵循的是xhtml 1.0 strict标准,文档的doctype声明就应该引用相应的dtd。另一方面,如果doctype声明指定的是xhtml dtd,但文档包含的是旧式风格的html标记,就是不恰当的;类似地,如果doctype声明指定的是html dtd,但文档包含的是xhtml 1.0 strict标记,同样是不恰当的。

三、选择什么样的doctype

如上例所示,xhtml 1.0中有3种dtd(文档类型定义)声明可以选择:过渡的(transitional)、严格的(strict)和框架的(frameset)。这里分别介绍如下。

1.过渡的

一种要求不很严格的dtd,允许在页面中使用html4.01的标识(符合xhtml语法标准)。过渡的dtd的写法如下:

代码如下:

<!doctype html public -//w3c//dtd xhtml 1.0 transitional//en

2.严格的

一种要求严格的dtd,不允许使用任何表现层的标识和属性,例如<br/>等。严格的dtd的写法如下:

代码如下:

<!doctype html public -//w3c//dtd xhtml 1.0 strict//en

>

3.框架的

一种专门针对框架页面所使用的dtd,当页面中含有框架元素时,就要采用这种dtd。框架的dtd的写法如下:

代码如下:

<!doctype html public -//w3c//dtd xhtml 1.0 transitional//en

>

使用严格的dtd来制作页面,当然是最理想的方式。但是,对于没有深入了解web标准的网页设计者,比较合适的是使用过渡的dtd。因为这种dtd还允许使用表现层的标识、元素和属性,比较适合大多数网页制作人员。

四、需要注意的问题

没什么特别的,就是一定要将doctype声明放在xhtml文档的顶部,上面哪怕多个html注释标记都不行。

最好示例代码也加上doctype,否则效果会有差异。

更多信息请查看IT技术专栏

更多信息请查看技术文章

 

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

标签:

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!