什么是 XHTML?XHTML 是以 XML 格式编写的 HTML。

XHTML 指的是可扩展超文本标记语言XHTML 与 HTML 4.01 几乎是相同的XHTML 是更严格更纯净的 HTML 版本XHTML 是以 XML 应用的方式定义的 HTMLXHTML 是 2001 年 1 月发布的 W3C 推荐标准XHTML 是大小写敏感的,标准的 XHTML 标签应该使用小写。XHTML 得到所有主流浏览器的支持

为什么使用 XHTML?因特网上的很多页面包含了"糟糕"的 HTML。如果在浏览器中查看,下面的 HTML 代码运行起来非常正常(即使它并未遵守 HTML 规则):

1<html>2<head>3<title>ThisisbadHTML</title>4<body>5<h2>BadHTML6<p>Thisisaparagraph7</body>

XML 是一种必须正确标记且格式良好的标记语言;今日的科技界存在一些不同的浏览器技术。其中一些在计算机上运行,而另一些可能在移动电话或其他小型设备上运行。小型设备往往缺乏解释"糟糕"的标记语言的资源和能力。所以 - 通过结合 XML 和 HTML 的长处,开发出了 XHTML。XHTML 是作为 XML 被重新设计的 HTML。

与 HTML 相比最重要的区别:

文档结构

XHTML DOCTYPE 是强制性的

<html> 中的 XML namespace 属性是强制性的<html>、<head>、<title> 以及 <body> 也是强制性的

元素语法

XHTML 元素必须正确嵌套XHTML 元素必须始终关闭XHTML 元素必须小写XHTML 文档必须有一个根元素

属性语法

XHTML 属性必须使用小写XHTML 属性值必须用引号包围XHTML 属性最小化也是禁止的

<!DOCTYPE ....>是强制性的
XHTML 文档必须进行 XHTML 文档类型声明(XHTML DOCTYPE declaration)。<html>, <head>, <title>, 和 <body> 元素也必须存在,并且必须使用 <html> 中的 xmlns 属性为文档规定 xml 命名空间。下面的例子展示了带有最少的必需标签的 XHTML 文档:

1<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"2"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">34<htmlxmlns="http://www.w3.org/1999/xhtml">56<head>7<title>Titleofdocument</title>8</head>910<body>11......12</body>1314</html>

XHTML 元素必须合理嵌套
在 HTML 中,一些元素可以不互相嵌套,像这样:

1<b><i>Thistextisboldanditalic</b></i>

在 XHTML 中,所有的元素都必须互相合理地嵌套,像这样:

1<b><i>Thistextisboldanditalic</i></b>

XHTML 元素必须有关闭标签

1错误示例:2<p>Thisisaparagraph4<p>Thisisanotherparagraph

1正确示例:2<p>Thisisaparagraph</p>3<p>Thisisanotherparagraph</p>

空元素必须包含关闭标签

1错误示例:2Abreak:<br>3Ahorizontalrule:<hr>4Animage:<imgsrc="happy.gif"alt="Happyface">5正确示例:6Abreak:<br/>7Ahorizontalrule:<hr/>8Animage:<imgsrc="happy.gif"alt="Happyface"/>

XHTML 元素必须是小写

1错误示例:23<BODY>4<P>Thisisaparagraph</P>5</BODY>6正确示例:78<body>9<p>Thisisaparagraph</p>10</body>

属性名称必须是小写

1错误示例:23<tableWIDTH="100%">4正确示例:56<tablewidth="100%">

属性值必须有引号

1错误示例:2<tablewidth=100%>3正确示例:4<tablewidth="100%">

不允许属性简写

1错误示例:23<inputchecked>4<inputreadonly>5<inputdisabled>6<optionselected>7正确示例:89<inputchecked="checked">10<inputreadonly="readonly">11<inputdisabled="disabled">12<optionselected="selected">