当前位置: 代码迷 >> HTML/CSS >> HTML跟XHTML的联系与区别,文档类型<DOCTYPE>
  详细解决方案

HTML跟XHTML的联系与区别,文档类型<DOCTYPE>

热度:971   发布时间:2012-11-13 10:00:50.0
HTML和XHTML的联系与区别,文档类型<!DOCTYPE>
参考资料
1 HTML和XHTML的区别以及盒模型<!DOCTYPE>说明
http://birdwindy.iteye.com/blog/628979
2 DOCTYPE类型详细介绍
http://www.webjx.com/html-xhtml/webxhtml-7725.html
3 xhtml中doctype声明为tranditional 和strict的区别
http://jingfeng198.blog.163.com/blog/static/4625592009712101535493/
4 HTML DOCTYPE
http://hi.baidu.com/yisu2008/blog/item/c77ebe22b3bed0a24723e801.html
5 html4.01标签教程01----DOCTYPE文档类型标签
http://blog.sina.com.cn/s/blog_67776a680100kqlf.html
6 为什么使用 DOCTYPE html
http://blog.csdn.net/lord_is_layuping/archive/2010/05/29/5633369.aspx
http://blog.wanz.im/2010/05/28/why_doctype_html
7 维基百科,自由的百科全书 XHTML
http://zh.wikipedia.org/zh-cn/XHTML
8  维基百科,自由的百科全书 HTML
http://zh.wikipedia.org/zh-cn/HTML
9 陈成的博客:新首页开发PPT详解 ―― HTML规范
http://www.chencheng.org/blog/2010/01/15/ppt-detail-on-html-spec/

一 HTML

超文本置标语言(英文:HyperText Markup Language,简称为HTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种置标语言.HTML是一种基于标准通用置标语言(SGML)的应用,是一种非常灵活的置标语言,W3C目前的建议是使用XHTML 1.1、XHTML 1.0或者HTML 4.01进行网络出版.

1 标准的版本历史

超文本置标语言(第一版)――在1993年6月发为互联网工程工作小组(IETF)工作草案发布(并非标准).
HTML 2.0――1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时
HTML 3.2――1996年1月14日,W3C推荐标准
HTML 4.0――1997年12月18日,W3C推荐标准
HTML 4.01(微小改进)――1999年12月24日,W3C推荐标准
ISO/IEC 15445:2000(“ISO HTML”)――2000年5月15日发布,基于严格的HTML 4.01语法,是国际标准化组织和国际电工委员会的标准。

二 XHTML

可扩展超文本置标语言(eXtensible HyperText Markup Language,XHTML),是一种置标语言,表现方式与超文本置标语言(HTML)类似,不过语法上更加严格,XHTML则基于可扩展置标语言(XML),XML是SGML的一个子集。XHTML 1.0在2000年1月26日成为W3C的推荐标准.
至现时为止,XHTML共有以下几个版本:
XHTML 1.0 Strict(严格版) 是参照“HTML 4.01 Strict”改编,但不包括被弃用的元素。
XHTML 1.0 Transitional(过渡版) 是参照“HTML 4.01 Transitional”改编,包括已于Strict版本被弃用的呈现性元素(例如<center>, <font>等)。
XHTML 1.0 Frameset(框架版) 是参照“HTML 4.01 Frameset”改编,并允许于网页中定义框架元素。
XHTML 1.1
XHTML Basic

三 HTML与XHTML的历史,联系及区别
.
几乎所有的网页浏览器在正确解析HTML的同时,可兼容XHTML.从HTML完全转移到XHTML,还需要一些过程.

1 HTML语法松散,因此产生了由DTD定义规则,语法要求更加严格的XHTML.

2 XHTNL语法符合XML格式,所有标签必须闭合,开始标签有相应的结束标签,(而在SGML和HTML中,引号不是必须的,当内容只是数字、字母及其它允许的特殊字符时,可以不用引号,比如<option selected>,也不允许,必须用<option selected="selected">),XHTML中所有的标签必须小写.

3 区别
A 文档应该是结构良好的,所有的元素都必须有结束标签(对于非空标签,也需要结束标签),所有的标签必须合理地嵌套
B 元素名称和属性必须小写
C 属性值必须总是使用引号包裹
D 禁止属性简化(XML不支持属性简化,属性值对必须书写完整)
E 脚本和样式元素
  在XHTML里面,脚本和样式的元素被声明为具有 #PCDATA 内容。因此,<和&会被认为是标记的开始,
  另外&lt;和 &amp;会被 XML 解释器认为是实体映射被分别解释成为<和&。从而将脚本或者样式元素包裹在 CDATA 标记的部分以避免这些实体扩展。
<script type="text/javascript"> // <![CDATA[ ... 没有转义处理的内容... // ]]> </script>

F SGML 排斥
SGML赋予DTD作者将特定的元素排斥在某个元素之外的能力。此种限制(被称为排斥)在XML中是不可能的.
G 拥有“ id”和“ name”属性的元素
HTML 4定义了a, applet, form, frame, iframe, img, and map元素的 name属性。HTML 4还引入了id属性。这两个属性被设计用作片段标识符。
在XML里面,片段标识符是ID类型的,而且每个元素只能拥有单一的ID类型的属性。所以,在XHTML 1.0中id属性被定义为ID类型。
为了确保XHTML 1.0文档是构建优良的XML文档,XHTML 1.0文档在为以上所列元素定义片段标识符时必须使用id属性。
注意:在XHTML 1.0中,不赞成此类元素拥有name属性,在XHTML的后续版本中将被去掉。

四 文件类型<!DOCTYPE>说明

html 的第一个标签就是声明html文档所使用的文档类型的。
<!DOCTYPE>标签放在页面的最顶端,在<html>的前面。这个标签可以声明三种类型,分别是严格类型strict,过度类型transitional,和框架类型frameset.
首先它声明了文档的根元素是html,然后他的公共标识符是  PUBLIC "-//W3C//DTD HTML 4.01//EN ,看到这个声明浏览器就知道了,然后寻找这个DTD进行解析,
如果找不到,浏览器就用后面的URL作为解析DTD,后面那个URL是万维网联盟,we标准制定者的官方DTD url,它是永久性存在的.

1 DOCTYPE的语法:  HTML 顶级元素 可用性 “注册//组织//类型 标签//定义 语言”"URL”
  参照以下的范例代码就能看明白啦
 
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>

  DOCTYPE各属性的可能值
       - 顶级元素:指定 DTD 中声明的顶级元素类型。这与声明的 SGML 文档类型相对应。 默认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:指定所引用对象的位置

2 各DOCTYPE类型说明

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

以使用下列的任何一种:

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

strict DOCTYPEs是默认的文档声明, 对构造HTML 4.01和XHTML 1.0都适用,文档服从HTML 4.01的严格文件类型描述,
这个标准是严格结构化的,将所有涉及表现的东西移出文档外,然后使用CSS来实现它,格式化. 它让浏览器使用它们最严格、(一定程度上)最符合标准的模式来渲染页面.在Strict DOCTYPEs下不支持的标签, (表格相关的支持:col, colgroup, tbody, td, tfoot, th, thead, and tr) language background bgcolor border (table支持) height (img和object支持) hspace name (在HTML 4.01 Strict中支持,XHTML 1.0 Strict中的form和img不支持) noshade nowrap target text, link, vlink, 和alink vspace width (img, object,table, col, 和 colgroup都支持)

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

这个声明是过渡文件类型描述是向严格的文件类型描述过渡的缓冲,过渡类型允许你在文档中使用表现元素和属性,
但是这不是W3C联盟所期望的。如果你的访问者浏览器不支持CSS,可以使用这种类型。

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

这个声明是框架集文件类型描述则针对包含框架元素的网页。这个类型和过渡类型没有什么区别,除了将frameset取代了body元素.

B XHTML 1.0 规定了三种 XML 文档类型:Strict、Transitional 以及 Frameset。

XHTML Strict DTD
如果您需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样式表(CSS)配合使用:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


XHTML Transitional DTD
Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素。
如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用 XHTML 的呈现特性时,请使用此类型:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


XHTML Frameset DTD

当您希望使用框架时,请使用此 DTD!
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">


如需检查你是否编写了带有正确 DTD 的合法 XHTML 文档,您可以把您的 XHTML 页面链接到一个 XHTML 验证器。

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


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