www.baike369.com
百科369 > CSS教程 > 从HTML到XHTML

从HTML到XHTML


从HTML到XHTML

使用HTML 4.01可以制作出现代的、结构化的、兼容标准的站点。然而为了做到向整洁的语义化的代码转变,并且为XML和未来的其它标记语言做好准备,建议使用XHTML 1.0来制作网页。

XHTML是基于HTML的,它是更严密、代码更整洁的HTML版本,所以只要注意其中的要点,就能很容易地向XHTML迈进。

XHTML和HTML之间最大的区别在于以下几个方面。


选择DTD定义文档的类型

请阅读“HTML/XHTML文档类型”文章。


为XHTML设定一个名字空间(Namespace)

通俗地讲,名字空间就是给文档做一个标记,告诉别人这个文档是属于谁的。名字空间声明允许通过一个URL来识别名字空间,只要直接在DOCTYPE声明后面添加如下代码即可:

<html xmlns="http://www.w3.org/1999/xhtml">

其中,

  • “xmlns”是“XHTML namespace”的缩写。
  • “http://www.w3.org/1999/xhtml”并不是指一个具体的文件,仅仅是给它一个名字而已。

由于XML允许定义自己的标签,制作者定义的标签和其它人定义的标签有可能相同,但表示不同的意义。当文件交换或者共享的时候就容易产生错误。为了避免这种错误发生,XML采用名字空间声明,允许通过一个网址指向来识别制作者的标签。

XHTML是HTML向XML的过渡,因此它需要符合XML文档规则,因此也需要定义名字空间。又因为XHTML 1.0不能自定义标签,所以它们的名字空间都相同,就是“http://www.w3.org/1999/xhtml”。

然而,w3.org的校验器不会由于这个属性没有出现在要校验的XHTML文档中而报告错误。这是因为“xmlns=http://www.w3.org/1999/xhtml”是一个固定的值,即使文档里没有包含它,它也会自动加上。


定义语言编码

为了被浏览器正确解释和通过标识校验,所有的XHTML文档都必须声明它们所使用的编码语言。代码如下:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

这里声明的编码语言是简体中文GB2312。


XHTML元素一定要被正确地嵌套使用

在HTML里一些元素可以不正确嵌套也能正常显示。如:

<span><strong>这里是百科369——www.baike369.com</span></strong>

而在XHTML中,必须要正确嵌套之后才能正常使用。如:

<span><strong>这里是百科369——www.baike369.com</strong></span>

这个错误通常发生在当嵌套多层之后的标签里面。


XHTML文件一定要有正确的组织结构

所有的XHTML应该正确地嵌套在以<html>开始、以</html>结束的元素里面,其它的元素可以有子元素,并且子元素也要被正确地嵌套在它们的父元素内。如:

<html>
  <head>...</head>
  <body>...</body>
</html>

注意:<html>、<head>和<body>元素必须出现,并且<title>元素必须在<head>元素里。


标签名字一定要使用小写字母

因为XHTML文档是XML的一种,而XML对大小写是敏感的,像<p>和<P>就是两个不同的标记。所以在XHTML文档中,所有的标签名字都必须使用小写字母。例如,正确的标签名字的写法如下:

<body>
  <p>XHTML对大小写敏感。</p>
</body>

所有的XHTML元素一定要关闭

在代码中不能有没有关闭的空元素,例如<br>、<img>和<input>等这样的空标签,就是没有关闭的空标签。

空标签表示这个标签没有结束标签,而不像其它标签那样成对出现,例如,<img>是一个空标签,因此<img></img>是错误的。空标签在最后加入“/”来表示结束。

正确使用XHTML标签的格式如下:

<p>标签已经关闭了</p>
空标签也关闭了<br />
<img src="img/baike369.jpg" />

属性名字必须小写

在XHTML中,属性名字和标签的要求一样,必须使用小写字母。例如:

<table width="100%">

属性值必须带上英文双引号

在XHTML中,属性的值需要使用英文双引号("")括起来。例如:

<table width="100%">

禁止使用属性的简写

在HTML中某些属性可以简写,但是在XHTML中不能简写。在HTML中简写的属性和其在XHTML中书写的规范如下:

HTML XHTML
checked checked="checked"
disabled disabled="disabled"
selected selected="selected"
noresize noresize="noresize"

用id属性代替name属性

HTML 4.01中为<a>、<applet>、<frame>、<iframe>、<img>和<map>定义了一个name属性,在XHTML里除了表单<form>和链接<a>以外,不能再使用name属性了,应该使用id属性来替换。例如:

<img src="img/baike369.jpg" id="baike369" />

内容文字注意转义

由于HTML的标签是以“<>”来表示的,因此“<>”不能直接出现在内容文字中,而需要转义,即使用其它符号来代替会引起问题的符号。例如下面的代码:

<p>段落<p>标签</p>

出现在内容中的“<”和“>”符号应该进行转义。如下所示:

<p>段落&lt;p&gt;标签</p>

浏览器会将“&lt;”和“&gt;”还原为“<”和“>”显示出来。

HTML中比较常见的需要转义的符号如下表所示:

英文字符 转义序列 注解
& &amp;
< &lt; 小于号
> &gt; 大于号
" &quot; 双引号
  &nbsp; 空格
© &copy; 版权符
® &reg; 注册符

另外,HTML使用的字符集是ISO &859 Larin-1字符集,该字符集中有许多标准键盘上无法输入的字符。对这些特殊字符只能使用转义序列。

转义序列的书写需要注意以下几点:

  • 转义序列各字符之间不能有空格。
  • 转义序列必须以英文分号“;”结束。
  • 单独的“&”不被认为是转义开始。
  • 区分大小写。

xml:lang属性和lang属性

lang属性可以应用于几乎所有的XHTML元素,它指定了元素中内容的语言属性。如果网页定义为XHTML 1.1或者XML格式,那么要使用xml:lang属性,因为xml:lang属性是在XML中确定语言信息的标准用法。

如果网页使用HTML格式,那么应该同时使用xml:lang和lang属性。如:

<div lang="no" xml:lang="no">Heia Norge!</div>

此属性常用于<html>标签中,代表整个文档使用了某种语言,例如:

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN" xml:lang="zh-CN">

xml:lang属性可以使搜索引擎了解页面使用了何种语言,搜索引擎可以按语言把页面归类,或者启动某些自动翻译系统。xml:lang属性也可以使排版工具了解你的页面使用了何种语言,这样相应的排版工具就可以进行切换标点符号、转换格式等操作了。

语言属性的重要性在浏览器里容易被忽略,可是对语音辨识阅读器就很重要。如果没有语言提示,阅读器就会遇到障碍,无法决定下段文字该用什么语言念出。

Copyright© 2011-2016 www.baike369.com All Rights Reserved