知识点 词汇表 联系我们
按类别浏览
内容搜索    
当前位置:WEB开发技术知识库(www.cn-web.com) .: WEB技术相关 .: XHTML/CSS .: html与xhtml详细概述

html与xhtml详细概述


本文章将描述html与xhtml之间的关系、相关概念。

W3C将XHTML称作HTML的接任者。最新的HTML版本为4.01,发布于1997年,此后只进行了较少的修订。XHTML 1.0发布于2000年,并在2001年发布了XHTML 1.1。

从时间上看,XHTML 1.0好像是对HTML的简单改进,而XHTML 1.1对XHTML 1.0做了细微的修订。这种看法是不准确的,XHTML 1.0并没有导致HTML 4.01完全过时,同样XHTML 1.1也没有导致XHTML 1.0完全过时。
 
问:什么是XHTML?

  答:XHTML是一种为适应XML而重新改造的HTML。当XML越来越成为一种趋势,就出现了这样一个问题:如果我们有了XML,我们是否依然需要HTML?为了回答这个问题,1998年5月我们在旧金山开了两天的工作会议,会议的结论是:需要。我们依然需要使用HTML。因为大量的人们已经习惯使用HTML来作为他们的设计语言,而且,已经有数以百万计的页面是采用HTML编写的。

问:为什么XHTML 1.0相对HTML 4.0独立发展?

  答:并不是这样。XHTML恰恰就是HTML 4.0的重新组织,(确切的说它是HTML 4.01,是一个修正版本的HTML 4.0,只不过以XHTML 1.0命名发行。) 它们在XML里的解释会有一些必要的差别,但另一方面,它们依然非常相似,我们可以把XHTML的工作看作是HTML 4.0基础上的延续。


  问:XHTML 1.0如何实现XML标准?

  答:XHTML就是一种XML应用。它采用XML的DTD文件格式定义,并运行在支持XML的系统上。这里要感谢XML的Namespaces功能,浏览器制造商不需要再创造新的私有标签(tags),他们只需要在XHTML代码里包含XML代码片段,或者XML代码里包含XHTML代码片段。
 
问:与HTML相比XHTML有什么特点?
  答:(1)XHTML解决HTML语言所存在的严重制约其发展的问题。HTML发展到今天存在三个主要缺点:不能适应现在越多的网络设备和应用的需要,比如手机、PDA、信息家电都不能直接显示HTML;由于HTML代码不规范、臃肿,浏览器需要足够智能和庞大才能够正确显示HTML;数据与表现混杂,这样你的页面要改变显示,就必须重新制作HTML。因此HTML需要发展才能解决这个问题,于是W3C又制定了XHTML,XHTML是HTML向XML过度的一个桥梁。
  (2)XML是web发展的趋势,所以人们急切的希望加入XML的潮流中。XHTML是当前替代HTML4标记语言的标准,使用XHTML 1.0,只要你小心遵守一些简单规则,就可以设计出既适合XML系统,又适合当前大部分HTML浏览器的页面。这个意思就是说,你可以立刻设计使用XML,而不需要等到人们都使用支持XML的浏览器。这个指导方针可以使web平滑的过渡到XML。
  (3)使用XHTML的另一个优势是:它非常严密。当前网络上的HTML的糟糕情况让人震惊,早期的浏览器接受私有的HTML标签,所以人们在页面设计完毕后必须使用各种浏览器来检测页面,看是否兼容,往往会有许多莫名其妙的差异,人们不得不修改设计以便适应不同的浏览器。
  (4)XHTML是能与其它基于XML的标记语言、应用程序及协议进行良好的交互工作。
  (5)XHTML是Web标准家族的一部分,能很好在无线设备等其它用户代理上。
  (6)在网站设计方面,XHTML可助你去掉表现层代码的恶习,帮助你养成标记校验来测试页面工作的习惯。
 
问:xhtml与html的区别
答:

XHTML文档必须具有良好完整的排版(well-formed)

编排良好性(Well-formedness)是XML引入的一个新概念.从本质上说,元素必须有结束标签,或者必须以特殊方式书写,而且元素必须嵌套.

尽管SGML规定重叠(overlapping)是非法的,但现有的浏览器普遍允许重叠.

正确:嵌套元素(nested elements)

<p>梦之都 <em>XHTML教程</em>.</p>

不正确:层叠元素(overlapping elements)

<p>梦之都 <em>XHTML教程</p>.</em>

元素和属性名必须小写

对于所有HTML元素和属性名, XHTML文档必须使用小写. 因为XML是大小写敏感的.如 <li><LI> 是不同的标签.

对非空元素,必须使用结束标签

在基于SGML的HTML4中的一些隐含结束意义的元素允许忽略结束标签.XML不允许忽略结束标签.除了在DTD中被声明为空的元素,所有元素必须有结束标签.

正确:结束的元素(terminated elements)

<p>梦之都的XHTML教程.</p><p>梦之都的CSS教程.</p>

不正确:未结束的元素(unterminated elements)

<p>梦之都的XHTML教程.<p>梦之都的CSS教程.

属性值必须在引号中

所有的属性值必须在引号中,即使是以数字形式的属性值

正确:在引号中的属性值(quoted attribute values)

<table rows="3">

不正确:不在引号中的属性值(unquoted attribute values)

<table rows=3>

属性最小化

XML不支持属性最小化.属性-属性值必须完整成对的写出.像disabled,checked这样的属性名不能在不指定属性值的情况下出现.

正确:非最小化属性(unminimized attributes)

<input checked="checked">

不正确:最小化属性(minimized attributes)

<input checked>

空元素

空元素必须有结束标签,或者起始标签必须以/>结束.例如,<br/><hr></hr>.参看HTML兼容性指导HTML Compatibility Guidelines中的信息,以保证向后兼容HTML 4用户代理程序.

正确:结束的空元素(terminated empty elements)

<br/><hr/>

错误:未结束的空标签(unterminated empty elements)

<br><hr>

属性值中的空白字符处理

用户代理处理属性值时将根据XML的下面方法操作Section 3.3.3:

  • 删去引导和后序空白符
  • 将一个或多个空白符(包括换行)转换成单个字符间空间

Script and Style 元素

XHTML中,scriptstyle元素被声明为#PCDATA内容形式,因此,<和&被看作是标识的开始,&lt和&amp等HTML实体将被XML处理器看作为实体引用而分别被认为是<和&.将scriptstyle元素的内容隐蔽在CDATA标记中避免了这些实体的扩张.

<script>
<![CDATA[
... unescaped script content ...
]]>
</script>

CDATA部分被XML处理器识别,表现为文档对象模型中的一个结点.参看Section 1.3的DOM LEVEL 1推荐标准[DOM].

替代的方式是使用外部script和style文档.

SGML排斥

SGML给作者的DTD可以指定在一个元素内部禁止出现的元素.这样的禁止在XML中是不可能的.

例如,严格的HTML 4 DTD"禁止"任何深度的'a'元素对另一'a'元素的嵌套.在XML中无法写出这些的"禁止".虽然这些禁止不能被定义在DTD中,但是一些元素不应该被嵌套.对不能被嵌套的元素Element Prohibitions的总结.

具有'id'和'name'属性的元素

HTML4定义了name属性的元素有a,applet,form,frame,iframe,img and map.HTML4还引入了id属性.这两个属性都是被设计用为片段标识符.

在XML中,片段标识符是ID,每个元素只能有一个ID类型的属性.因此,在XHTML1.0中,id属性被定义为ID类型.为保证XHTML1.0文档是结构良好(well-structured)的XML文档,在定义一个片段标识符时,XHTML文档必须使用id属性,即使是对那些以前用name属性的元素.参看 HTML Compatibility Guidelines,确保XHTML文档以text/html媒体类型使用时,这些"锚(anchors)"能向后兼容.

注意,在XHTML 1.0中,name属性是不赞成使用的,在以后的XHTML版本中将被删除.



对此文章打分评级

用户评论

增加评论
此文章还没有任何评论!
网站地图 - 知识词汇 - 全文检索 - 广告服务 - 帮助中心 - 联系我们
.:www.cn-web.com
网站技术开发联盟之WEB开发技术知识库
联系人:老韩(QQ:5679551)
晋ICP备07003487号