日期:2014-05-17  浏览次数:20866 次

HTML和XHTML的区别
    昨天晚上困得厉害,所以很早就上床睡觉了!
     早晨起来,同事告诉我说前两天做的一个页面的页面样式出了问题,原来是Respinse.write JavaScript脚本时出的问题。输出到页面最头部了。
     因为用的开发工具是VS2008,页面是基于XHML。原来用的开发工具是VS2003.页面是基于HTML4.0的,所以原来在HTML4.0里支持的一些东西,拿到XHTML里面,不支持了。
     后来用了NET提供的类库ClientScript.RegisterClientScriptBlock函数解决了问题。
     为此专门查询了HTML4.0与XHTML1.0的区别。这贴过来如下:
     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)。



  处理空元素

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


  以下 是空元素的例子:



以下是引用片段:
<br /> 
<hr /> 
<img src = "/images/adpics/1/b027.jpg" alt = "cwdn" /> 
<link rel="stylesheet" href="/styles/cwdn.css" type ="text/css" /> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / > 

  XHTML 区分大小写

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

  XHTML 语法上要求更严谨些。要积极的看待这个问题。

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

  比如:

以下是引用片段:
<IMG SRC = "/images/adpics/1/b027 .jpg" Alt = "cwdn" /> 


  应该写成:

以下是引用片段:
<img src = "/images/adpics/1/b027.jpg" alt = "cwdn" /> 


  XHTML 属性值要用双引号情况就有所不同。并不强制要求属性值加双引号?

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





以下是引用片段:
<table cellspacing = 0> 
<input checked > 

  但在 XHTML 里,应该写成:



以下是引用片段:
<table cellspacing = "0"> 
<input checked = "checked" />

  XHTML用id属性代替 name 属性HTM 很多元素,比如 a,applet,frame,iframe,img 和 map,有 name

  属性。在 XHTML 里是要废除的,而用 id 属性取而代之。

  比如:

以下是引用片段:
<img src="cwdn.gif" name="cwdn logo" /> 


  应该写成:

以下是引用片段:
<img src="cwdn.gif" id="cwdn logo" /> 


   以下是引用片段:
XHTML 特殊字符的处理& 应该在 XHTML 里应该写成 &amp;。


      比如:XHTML 的所有标记和属性都要小写。

以下是引用片段:
You & Me  应该写成:  You &amp; Me


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

以下是引用片段:
<script type="text/javascript">// <![CDATA[//]]></script> 


  浏览器的角度

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

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

  从浏览器的角度看待上面几个不同,大致是下面的测试结果:

  XHTML 要求正确嵌套:如果你没有嵌套,浏览器会试图帮你嵌套。

  XHTML 所有元素必须关闭:如果你没有关闭,浏览器会试图帮你关闭。

  XHTML 区分大小写:你非要写成大写,浏览器帮你转换成为小写。

  属性值要用双引号:你非要不肯加,浏览器帮你加。

  特殊字符的处理:You & Me 也好,You & Me 也好 ,浏览器都能读入。

  用 id 属性代替 name 属性 :你非要用 name 也可以。

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

以下是引用片段:
<style>
.hello { ...... }
</style > 


  而你使用的时候写成

以下是引用片段:
<p class="Hello">


  如果从浏览器的角度来看待这个问题 。 来自那这个CSS是不会被使用的。要积