XHTML 是一种可扩展的超文本标记语言,与 HTML 4.01 非常相似。它是更严格、更纯净的 HTML 版本,以 XML 应用的方式定义。XHTML 是 W3C 于 2001 年 1 月发布的推荐标准,得到了所有主流浏览器的支持。
一、使用XHTML原因
因特网上的很多页面包含了“糟糕”的 HTML。如果在浏览器中查看,下面的 HTML 代码运行起来非常正常(即使它并未遵守 HTML 规则):
<html> <head> <title>This is bad HTML</title> <body> <h1>Bad HTML <p>This is a paragraph </body>
XML 是一种必须正确标记且格式良好的标记语言。在当今科技界,存在许多不同的浏览器技术,其中一些运行在计算机上,而另一些可能在移动电话或其他小型设备上运行。由于小型设备缺乏解释“糟糕”的标记语言的资源和能力,因此需要一种更严格、更纯净的 HTML 版本来满足这些设备的需求。
因此,通过结合 XML 和 HTML 的优势,XHTML 应运而生。XHTML 是作为 XML 重新设计的 HTML,它继承了 XML 严格的语法规则和良好的格式,同时也保留了 HTML 的可扩展性和易用性。XHTML 得到了 W3C 的推荐和支持,成为了一种广泛使用的网页设计标准。
二、XHTML和HTML区别
XHTML与 HTML 相比最重要的区别:
1、文档结构
- XHTML DOCTYPE 是强制性的;
- <html> 中的 XML namespace 属性是强制性的;
- <html>、<head>、<title> 以及 <body> 也是强制性的。
2、元素语法
- XHTML 元素必须正确嵌套;
- XHTML 元素必须始终关闭;
- XHTML 元素必须小写;
- XHTML 文档必须有一个根元素。
3、属性语法
- XHTML 属性必须使用小写;
- XHTML 属性值必须用引号包围;
- XHTML 属性最小化也是禁止的。
三、!DOCTYPE …
XHTML 文档必须进行 XHTML 文档类型声明(XHTML DOCTYPE declaration)。<html>、<head>、<title> 以及 <body> 元素也必须存在,并且必须使用 <html> 中的 xmlns 属性为文档规定 xml 命名空间。
下面的例子展示了带有最少的必需标签的 XHTML 文档:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Title of document</title> </head> <body> ...... </body> </html>
四、HTML转换到XHTML
1、向每张页面的第一行添加 XHTML <!DOCTYPE>;
2、向每张页面的 html 元素添加 xmlns 属性;
3、把所有元素名改为小写;
4、关闭所有空元素;
5、把所有属性名改为小写;
6、为所有属性值加引号。
五、XHTML元素
1、XHTML元素必须正确嵌套
在 HTML 中,某些元素可以不正确地彼此嵌套在一起,就像这样:
<b><i>This text is bold and italic</b></i>
在 XHTML 中,所有元素必须正确地彼此嵌套,就像这样:
<b><i>This text is bold and italic</i></b>
2、XHTML 元素必须始终关闭
这是错误的:
<p>This is a paragraph <p>This is another paragraph
这是正确的:
<p>This is a paragraph</p> <p>This is another paragraph</p>
3、空元素也必须关闭
这是错误的:
A break: <br> A horizontal rule: <hr> An image: <img src="happy.gif" alt="Happy face">
这是正确的:
A break: <br /> A horizontal rule: <hr />
4、XHTML元素必须小写
这是错误的:
<BODY> <P>This is a paragraph</P> </BODY>
这是正确的:
<body> <p>This is a paragraph</p> </body> An image: <img src="happy.gif" alt="Happy face" />
六、XHTML属性
1、XHTML属性必须使用小写
这是错误的:
<table WIDTH="100%">
这是正确的:
<table width="100%">
2、XHTML属性值必须用引号包围
这是错误的:
<table width=100%>
这是正确的:
<table width="100%">
3、禁止属性简写
这是错误的:
<input checked> <input readonly> <input disabled> <option selected>
这是正确的:
<input checked="checked" /> <input readonly="readonly" /> <input disabled="disabled" /> <option selected="selected" />