这篇文章主要阐述 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 />。
以下 是空元素的例子:
<br />
<hr />
<img src = "/images/adpics/1/b027.jpg" alt = "webjx" />
<link rel="stylesheet" href="/styles/webjx.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 = "webjx" />
应该写成:
<img src = "/images/adpics/1/b027.jpg" alt = "webjx " />
XHTML 属性值要用双引号
情况就有所不同。并不强制要求属性值加双引号?
HTML 并不强制要求属性值加双引号。比如你可以写:
<table cellspacing = 0>
<input checked >
的几大区别:HTML 4 .01 相比实在没有什么不同?
但在 XHTML 里,应该写成:
<table cellspacing = "0 ">
<input checked = "checked" / >
XHTML 用 id 属性代替 name 属性
HTML 很多元素,比如 a,applet,frame,iframe,img 和 map,有 name 属性。在 XHTML 里是要废除的,而用 id 属性取而代之。
比如:
<img src="http://www.webjx.com/htmldata/2007-09-06/webjx.gif" name="webjx logo" />
应该写成:
<img src="http://www.webjx.com/htmldata/2007-09-06/webjx.gif" id="webjx logo" />
XHTML 特殊字符的处理
& 应该在 XHTML 里应该写成 &。
比如:比如:XHTML 的所有标记和属性都要小写。
比如:
You & Me
应该写成:
You & Me
还有如果内嵌 Jav ascript 代码,在 XHTML 里则应该写成:
<script type="text/javascript">// <![CDATA[
...
//]]></script>
浏览器的角度
以上是从协议标准的角度来看待这个问题的。如果从浏览器的角度来看待这个问题,情况就有所不同。
考虑一下,如果把 XHTML 写得很不严格,浏览器会怎么做?是不是会弹出一个对话框,写着“这个网站的开发人员技术不过关,写的不是正宗的 XHTML 文件,咱不显示”?显然,如果浏览器做成这个样子,倒贴钱也是不会有人用的。
从浏览器的角度看待上面几个不同,大致 是下面的测试结果(IE 和Firefox我都测试过):
- XHTML 要求正确嵌套:如果你没有嵌套,浏览器会试图帮你嵌套。
- XHTML 所有元素必须关闭:如果你没有关闭,浏览器会试图帮你关闭。
- XHTML 区分大小写:你非要写成大写,浏览器帮你转换成为小写。
- 属性值要用双引号:你非要不肯加,浏览器帮你加。
- 特殊字符的处理:You & Me 也好,You & Me 也好 ,浏览器都能读入。
- 用 id 属性代替 name 属性 :你非要用 name 也可以。
XHTML 里应该写成 &。以下是正确的嵌套。
如果 你在文档开始用 DocType 指定为 XHTML 了,有一点需要注意。在给 Tag 用 class 指定CSS 的时候,是区分大小写的。例如,你定义了一个CSS如下,