HTML 与 XHTML 的区别
XHTML 是以 XML 格式编写的 HTML。
什么是 XHTML?
- XHTML 指的是可扩展超文本标记语言
- XHTML 与 HTML 4.01 几乎是相同的
- XHTML 是更严格更纯净的 HTML 版本
- XHTML 是以 XML 应用的方式定义的 HTML
- XHTML 是 2001 年 1 月发布的 W3C 推荐标准
- XHTML 得到所有主流浏览器的支持
为什么使用 XHTML?
因特网上的很多页面包含了"糟糕"的 HTML。
如果在浏览器中查看,下面的 HTML 代码运行起来非常正常(即使它并未遵守 HTML 规则):
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)。
您可以在 W3School 的标签参考手册中找到完整的 XHTML 文档类型。
<html>、<head>、<title> 以及 <body> 元素也必须存在,并且必须使用 <html> 中的 xmlns 属性为文档规定 xml 命名空间。
实例
下面的例子展示了带有最少的必需标签的 XHTML 文档:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>文件标题</title>
</head>
<body>
这里有一些内容...
</body>
</html>
XHTML 元素必须正确嵌套
在 XHTML中,元素必须始终正确地相互嵌套,如下所示:
正确:
<b><i>一些文字</i></b>
错误:
<b><i>一些文字</b></i>
XHTML 元素必须始终关闭
在 XHTML 中,元素必须始终关闭,如下所示:
正确:
<p>这是一个段落</p>
<p>这是另一个段落</p>
错误:
<p>这是一个段落
<p>这是另一个段落
XHTML 空元素必须关闭
在 XHTML 中,空元素必须始终关闭,如下所示:
正确:
A break: <br />
A horizontal rule: <hr />
An image: <img src="happy.gif" alt="Happy face" />
错误:
A break: <br>
A horizontal rule: <hr>
An image: <img src="happy.gif" alt="Happy face">
XHTML 元素必须为小写
在 XHTML中,元素名称必须始终为小写,如下所示:
正确:
<body>
<p>这是一个段落</p>
</body>
错误:
<BODY>
<P>这是一个段落</P>
</BODY>
XHTML 属性名称必须为小写
在 XHTML中,属性名称必须始终为小写,如下所示:
正确:
<a href="https://www.w3ccoo.com/html/">访问我们的 HTML 教程</a>
错误:
<a HREF="https://www.w3ccoo.com/html/">访问我们的 HTML 教程</a>
XHTML 属性必须使用引号
在 XHTML中,属性必须使用引号,如下所示:
正确:
<a href="https://www.w3ccoo.com/html/">访问我们的 HTML 教程</a>
错误:
<a href=https://www.w3ccoo.com/html/>访问我们的 HTML 教程</a>
XHTML 属性禁止省略
在 XHTML中, 属性禁止省略
正确:
<input type="checkbox" name="vehicle" value="car" checked="checked" />
<input type="text" name="lastname" disabled="disabled" />
错误:
<input type="checkbox" name="vehicle" value="car" checked />
<input type="text" name="lastname" disabled />