您现在的位置: PQ秀秀网 >> 网页设计 >> HTML-XHTML-CSS >> 正文 用户登录 新用户注册
网页标准初学:XHTML与HTML的区别
作者:佚名    教程来源:不详    点击数:加载中...    更新时间:2008-5-7 字体:[ ]
添加到收藏: 添加到百度收藏  收藏到QQ书签  添加到雅虎收藏  添加到新浪ViVi  添加到天极网摘  添加到和讯网摘

 因为XHTML是XML的一个应用,一些在基于SGML的HTML 4中完全合法的习惯在XHTML中必须改变。

  文档必须是编排良好的

  编排良好性Well-formedness是[XML]引入的一个新概念。从本质上说,这意味着元素必须有结束标签,或者必须以特殊方式书写(在下面说明)。

  元素必须嵌套,尽管SGML规定层叠非法,但现有的浏览器普遍允许层叠。

  正确:嵌套元素。

<p>here is an emphasized <em>paragraph</em>.</p>

  不正确:层叠元素。

<p>here is an emphasized <em>paragraph.</p></em>

  元素和属性名必须小写

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

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

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

  正确:结束了的元素。

<p>here is a paragraph.</p><p>here is another paragraph.</p>

  不正确:未结束元素。

<p>here is a paragraph.<p>here is another paragraph.

  属性值必须在引号中

  所有的属性必须用引号,即使是数字。

  正确:在引号中的属性值

<table rows="3">

  不正确:不在引号中的属性值。

<table rows=3>

  属性最小化

  XML 不支持属性最小化. 属性值对必须写全。象compact,checked这样的属性名不能不指定属性值而在元素中出现。

  正确:没有最小化的属性

<dl compact="compact">

  不正确:最小化属性

<dl compact>

  空元素

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

  正确:结束的空元素

<br/><hr/>

  错误:未结束的空标签

<br><hr>

  属性值中的空白字符处理

  对属性值,用户代理程序将删去引导和后序空白符,将一个或多个空白符(包括换行)转换成单个字符间空间(在西方书写体中是一个ASCII空格) See Section 3.3.3 of [XML]。

  Script and Style 元素

  在XHTML中,script和style元素声明为#PCDATA内容形式,因此,< 和 & 被看作是标识的开始,&lt和&amp 这样的实体被XML处理程序看作为实体引用而分别被认为是< 和 & . 将script和style元素的内容包裹在CDATA记号部分中避免了这些实体的扩张。

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

  CDATA 部分被 XML 处理程序识别,是文档对象模型中一个结点。请参看1.3节Section 1.3的DOM LEVEL 1推荐标准[DOM]。

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

  SGML 禁止

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

  例如,严格的 HTML 4 DTD 禁止任何深度的’a’元素对另一’a’元素的嵌套。在XML中无法写出这样的禁止。尽管这些禁止不能在DTD中定义,一些元素不应该被嵌套。在标准化的附录B Appendix B中是这些元素的汇总。

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

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

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

  注意,在XHTML 1.0中,name 属性不被正式支持,在以后的XHTML版本中将被删除

教程录入:andy    责任编辑:andy 
  网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)