服务器安全  (41)
网站推广专题  (36)
智能建站知识  (12)
DIV+CSS  (41)
网站建设知识  (15)
 

HTML 和 XHTML 区别

北京智能建站-智能建站系统-十艾智能建站   2008-08-07 15:53:33 作者:十艾智能建站 来源:http://hi.baidu.com/aohtang 文字大小:[][][]

这篇文章主要阐述 HTML 和 XHTML 的区别。简单来说,XHTML 可以认为是 XML 版本的 HTML,为符合 XML 要求,XHTML 语法上要求更严谨些。

以下是 XHTML 相对 HTML 的几大区别:

  • XHTML 要求正确嵌套
  • XHTML 所有元素必须关闭
  • XHTML 区分大小写
  • XHTML 属性值要用双引号
  • XHTML 用 id 属性代替 name 属性
  • XHTML 特殊字符的处理

XHTML 要求正确嵌套

以下是正确的嵌套 :

<p >布啦布啦<strong>独树一帜</strong>。</p >

以下是错误的嵌套:

<p>布啦布啦<strong>独树一帜</p></strong>。

XHTML 所有元素必须关闭

在 HTML 中,比如 <p>,<li> 这些标记 ,你可以不写 </p>,</li>,但是在 XHTML 里,必须要求写关闭标记 (Closing Tag)。

比如:

<p>布啦布啦很认真。

应该写成:

<p >布啦布啦很认真。</p>

处理空元素

有些空元素 ,在 XHTML 里的写法 是在">"之前加空格和斜杠。比如<br>,应该写成<br />。

你可以不写 </p>,</li>,

以下是空元素的例子:

<br />

<hr />

<img src = "/images/adpics/1/b027.jpg" alt = "blabla" />

<link rel="stylesheet" href ="/styles/blabla.css" type="text/css " / >

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

XHTML 区分大小写

应该在 XHTML 里应该写成 &amp;。

HTML 不区分大小写 ,但是 XHTML 是区分大小写的 。

IE和Firefox我都测试过):比如 :并不强制要求属性值加双引号?

XHTML 的所有标记属性都要写。

比如:

<IMG SRC = "/images/adpics/1/b027.jpg" Alt = "blabla" />

应该写成 :

<img src = "/images/adpics/1/b027.jpg" alt = "blabla" />

XHTML 属性值要用双引号

以下是正确的嵌套:里应该写成 &amp?

HTML 并不强制要求属性值加双引号 。比如你可以写:

<table cellspacing = 0 >

<input checked >

比如:标准要求浏览器 不再支持原先的容错能力,这是一个标准制定者走火入魔的典型例子!

但在 XHTML 里,应该写成:

<table cellspacing = "0 ">

<input checked = "checked" />

XHTML 用 id 属性代替 name 属性

HTML 很多元素,比如 a,applet,frame,iframe,img 和 map ,有 name 属性。在 XHTML 里 是要废除的 ,而用 id 属性取而代之。

比如:

<img src="blabla.gif" name="blabla logo" />

里则应该写成:要积极的看待这个问题 ,这让 你可以用更多的名字来命名?

应该写成:

<img src="blabla.gif" id="blabla logo" />

XHTML 特殊字符的处理

为符合 XML 要求,XHTML。

& 应该在 XHTML 里应该写成 &amp;。

以下 是错误的嵌套:Jav ascript 。

比如:

You & Me

以下是错误的嵌套:还有如果内嵌 Javascript。

应该写成:

You &amp; Me

还有如果内嵌 Javascript 代码,在 XHTML 里则应该写成:

<script type="text/javascript">//<![CDATA[

...

//]]></script>

浏览器的角度

以上是从协议标准的角度来看待这个问题的。如果从浏览器的角度来看待这个问题,情况就有所不同。

考虑一下 ,如果把 XHTML 写得很不严格,浏览器会怎么做?是不是会弹出一个对话框,写着“这个网站的开发人员技术不过关,写的不是正宗的 XHTML 文件,咱不显示”?显然 ,如果浏览器做成这个样子,倒贴钱也是不会有人用的。

从浏览器的角度看待上面几个不同 ,大致是下面的测试结果(IE和Firefox我都测试过 ):

  • XHTML 要求正确嵌套:如果你没有嵌套,浏览器会试图帮 你嵌套。
  • XHTML 所有元素必须关闭:如果你没有关闭,浏览器会试图帮你关闭。
  • XHTML 区分大小写 :你非要写成大写,浏览器帮你转换成为小写 。
  • 属性值要用双引号:你非要不肯加,浏览器帮你加。
  • 特殊字符的处理:You & Me 也好,You &amp; Me 也好,浏览器都能读入 。
  • 用 id 属性代替 name 属性:你非要用 name 也可以。

如果你在文档开始用 DocType 指定为 XHTML 了,有一点需要注意。在给 Tag 用 class 指定CSS 的时候,是区分大小写的 。例如,你定义了一个CSS如下,

<style>
.hello { ...... }
</style>

应该写成:应该写成:应该写成:IE和Firefox我都测试过。

而 你使用的时候写成,

<p class="Hello "> ......

XHTML 里,必须要求写关闭标记 (Closing 。

那这个CSS是不会被使用的。要积极的看待这个问题,这让你可以用更多的名字来命名 Style,是一个好事。

XHTML 标准的前途

从标准制定者的初衷看,制定 XHTML 标准是试图把 HTML 规范成为严格的 XML 格式,这样无可避免的会导致一个结果,就是从 HTML 到 XHTML 的升级导致标准的容错能力降低了 。把自己的网页源文件写得严格一点当然是好事,但是一个标准不可能去要求浏览器降低自己的容错能力。

XHTML 1.0 标准是兼容 HTML 4.01,是个 不错的协议,可以让开发者 在编写代码的同时通过一些工具来检查代码的合法性,虽然对于用户而言 ,制作出来的网页和 HTML 4.01 相比实在没有什么不同。对于你写新的网页来说,使用 XHTML 1.0 还是一个 不错的选择 。

从浏览器的角度看待上面几个不同。

XHTML 1.1 标准要求浏览器不再支持原先的容错能力,这是一个标准制定者走火入魔的典型例子,这个标准从学术上说非常纯净,但 是对于浏览器而言 ,则是个呆板、笨拙、不可理喻的标准 。所以目前所有由人类开发的浏览器都没有遵照所谓纯净的 XHTML 1.1的标准,你的代码只要浏览器能读懂,他都会很好的显示出来,而 不跳出弹框报错。

在 XHTML 里的写法是在">"之前加空格 和斜杠?

从发展的趋势来看,一个标准没有浏览器服从,等于是没有意义的标准。从浏览器的实现角度来看,新的协议只能在原来 HTML 的基础上扩大能力增加容错,而不能缩小了能力减少容错。所以新的协议中,只有扩大能力增加容错的部分会被采纳,而其他部分都仅仅是纸上谈兵而已。

最新评论
发表评论  
评论标题
评论内容
图片上传
表情图标
验 证 码
关于我们 站点地图 联系方式 帮助中心 会员社区 友情链接 内容搜索
 
本站关键词:智能建站 北京智能建站  智能建站系统   智能网店 免费智能建站
24小时服务热线:13521942498    E-mail:whwvip#126.com(请将#改为@)  QQ:279764954  621825069  447458068
智能建站  智能网店© 版权所有  京ICP备07014896号