XHTML 语法规则
通过上节《XHTML 与 HTML 之间的差异》的学习,我们知道编写 XHTML 代码需要干净的 HTML 语法,XHTML语法与HTML语法非常相似,几乎所有有效的HTML元素在XHTML中都是有效的。但是当你编写一个XHTML文档时,你需要特别注意使你的HTML文档符合XHTML。下面w3cschool.cn带大家深入学习XHTML的语法规则:
更多的 XHTML 语法规则:
- 在XHTML文档的开头写一个DOCTYPE声明。
- 只写小写的所有XHTML标签和属性。
- 关闭所有的XHTML标签。
- 将所有标签嵌套正确。
- 引用所有的属性值。
- 禁止属性最小化。
- 更换名称与属性ID属性。
- 弃用脚本标记的语言属性。
这里是上面的XHTML规则的详细解释
DOCTYPE声明
所有的XHTML文档在开始时都必须有一个DOCTYPE声明。有三种类型的DOCTYPE声明,在XHTML Doctypes一章中详细讨论。
这是一个使用DOCTYPE的例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
区分大小写
XHTML是区分大小写的标记语言。所有的XHTML标签和属性都需要以小写字母来写。
<!-- 这在XHTML中是无效的 -->
<A Href="https://www.w3cschool.cn">w3cschool 在线教程</A>
<!-- 正确的XHTML写法如下 -->
<a href="https://www.w3cschool.cn">w3cschool 在线教程</a>
在这个例子中,超链接Href和锚标签A不是小写,所以这是不正确的。
关闭标签
每个XHTML标签都应该有一个等效的结束标签,即使是空的元素也应该有结束标签。
这里是一个例子,显示使用标签的有效和无效的方式:
<!-- 这在XHTML中是无效的 -->
<p>这段不是按照XHTML语法编写的。
<!-- 这在XHTML中也是无效的 -->
<img src="http://statics.w3cschool.cn/images/w3c/index-logo.png" >
以下语法显示了在XHTML中编写上述标记的正确方法。不同的是,这里我们已经关闭了两个标签。
<!-- 这在XHTML中是有效的 -->
<p>这段是按照XHTML语法编写的。</p>
<!-- 现在这也是有效的 -->
<img src="http://statics.w3cschool.cn/images/w3c/index-logo.png" />
属性行情
XHTML属性的所有值必须被引用。否则,你的XHTML文档被认为是一个无效的文档。
这里是显示语法的例子:
<!-- 这在XHTML中是无效的 -->
<img src="http://statics.w3cschool.cn/images/w3c/index-logo.png" width=228 height=60 />
<!-- 正确的XHTML写法如下 -->
<img src="http://statics.w3cschool.cn/images/w3c/index-logo.png" width="228" height="60" />
简写属性
XHTML不允许属性简写。这意味着你需要明确说明属性及其值。
以下示例显示了差异:
<!-- 这在XHTML中是无效的 -->
<option selected>
<!-- 正确的XHTML写法如下 -->
<option selected="selected">
下面是一个 HTML 的简写属性列表,以及在 XHTML 中的改写:
HTML | XHTML |
---|---|
compact | compact="compact" |
checked | checked="checked" |
declare | declare="declare" |
readonly | readonly="readonly" |
disabled | disabled="disabled" |
selected | selected="selected" |
defer | defer="defer" |
ismap | ismap="ismap" |
nohref | nohref="nohref" |
noshade | noshade="noshade" |
nowrap | nowrap="nowrap" |
multiple | multiple="multiple" |
noresize | noresize="noresize" |
ID属性
id属性取代了name属性。而不是使用name =“name”,XHTML更喜欢使用id =“id”。
以下示例显示了如何:
<!-- 这在XHTML中是无效的 -->
<img src="http://statics.w3cschool.cn/images/w3c/index-logo.png" name="w3cschool logo" />
<!-- 正确的XHTML写法如下 -->
<img src="http://statics.w3cschool.cn/images/w3c/index-logo.png" id="w3cschool logo" />
语言属性
脚本标记的语言属性已被弃用。以下示例显示了这种差异:
<!-- 这在XHTML中是无效的 -->
<script language="JavaScript" type="text/JavaScript">
document.write("w3cschool.cn编程教程");
</script>
<!-- 正确的XHTML写法如下 -->
<script type="text/JavaScript">
document.write("w3cschool.cn编程教程");
</script>
嵌套标签
您必须正确嵌套所有的XHTML标签。否则,您的文档被认为是不正确的XHTML文档。
以下示例显示了语法:
<!-- 这在XHTML中是无效的 -->
<b><i> 这个文本是粗体和斜体</b></i>
<!-- 正确的XHTML书写方式如下 -->
<b><i> 这是粗体和斜体字。</i></b>
元素禁止
以下元素不允许其中有任何其他元素。这个禁止适用于所有的嵌套深度。意思是,它包括所有的降序元素。
元件 | 禁令 |
---|---|
<a> | 不得包含其他<a>元素。 |
<pre> | 不得包含<img>,<object>,<big>,<small>,<sub>或<sup>元素。 |
<button> | 不得包含<input>,<select>,<textarea>,<label>,<button>,<form>,<fieldset>,<iframe>或<isindex>元素。 |
<label> | 不得包含其他的<label>元素。 |
<form> | 不得包含其他<form>元素。 |
一个最小的XHTML文档
以下示例显示了XHTML 1.0文档的最小内容:
<?xml version="1.0" encoding="UTF-8"?>
<!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/TR/xhtml1" xml:lang="en" lang="en">
<head>
<title>每个文件都必须有一个标题-w3cschool.cn</title>
</head>
<body>
...你的内容在这里——www.w3cschool.cn...
</body>
</html>
注意:
- 文件类型声明并非 XHTML 文档自身的组成部分。它并不是 XHTML 元素,所以他可以没有关闭标签。
- XHTML文档要求xmlns属性出现在html标签中。(XHTML 文档中没有这个属性,
w3.org
的验证工具也不会提示错误。因为,"xmlns=http://www.w3.org/1999/xhtml
" 是一个固定值,即使你的文档里没有包含它,这个值也会被自动添加到<html>
标签中。 )
你会在下一章《XHTML DTD三种文件类型声明》中学到更多关于 XHTML 文档类型声明的知识。