HTML与 XHTML
XHTML 是更严格、更基于 XML 的 HTML 版本,本文介绍 XHTML 与 HTML 的区别。
XHTML 是更严格、更基于 XML 的 HTML 版本。
什么是 XHTML?
- XHTML 是 EXtensible HyperText Markup Language 的缩写
- XHTML 是更严格、更基于 XML 的 HTML 版本
- XHTML 是定义为 XML 应用程序的 HTML
- 所有主流浏览器都支持 XHTML
XHTML 的意义
XML 是一种标记语言,所有文档都必须正确标记(“格式良好”)。
对于 HTML 而言,即使 HTML 在标记中存在一些错误,浏览器会忽略那些错误,并尝试显示网页。这并不容易与其他数据格式一起工作。
开发 XHTML 的目的是使 HTML 更具可扩展性和灵活性,以便与其他数据格式(例如 XML)一起使用。XHTML 带有更严格的错误处理。
与 HTML 最重要的区别
- XHTML 中必须声明文档类型
<!DOCTYPE>
- XHTML
<html>
元素必须设定 xmlns 属性 - XHTML 必须有
<html>
、<head>
、<title>
和<body>
这些元素。 - XHTML 元素必须始终正确嵌套
- XHTML 元素必须正确关闭
- XHTML 元素必须总是小写
- XHTML 属性名称必须小写
- XHTML 属性值必须使用引号
- XHTML 禁止省略属性值
XHTML 例子
这是一个包含最少必需标签的 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>Some text</i></b>
错误的写法:
<b><i>Some text</b></i>
XHTML 元素必须始终关闭
在 XHTML 中,元素必须始终关闭,如下所示:
正确的写法:
<p>这是一个段落。</p>
<p>This is another paragraph</p>
错误的写法:
<p>这是一个段落。
<p>This is another paragraph
XHTML 空元素必须始终关闭
在 XHTML 中,空元素必须始终关闭,如下所示:
正确的写法:
换行: <br />
分割线: <hr />
图片: <img src="happy.gif" alt="Happy face" />
错误的写法:
换行: <br>
分割线: <hr>
图片: <img src="happy.gif" alt="Happy face">
XHTML 元素必须为小写
在 XHTML 中,元素名称必须为小写。
正确的写法:
<body>
<p>这是一个段落。</p>
</body>
错误的写法:
<BODY>
<P>这是一个段落。</P>
</BODY>
XHTML 属性名称必须为小写
在 XHTML 中,属性名称必须为小写。
正确的写法:
<a href="https://www.gobeta.net/tutorials/html/">HTML 教程</a>
错误的写法:
<a HREF="https://www.gobeta.net/tutorials/html/">HTML 教程</a>
XHTML 属性值必须使用引号
在 XHTML 中,属性值必须使用引号。
正确的写法:
<a href="https://www.gobeta.net/tutorials/html/">HTML 教程</a>
错误的写法:
<a href=https://www.gobeta.net/tutorials/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 />