首页 > 代码库 > HTML 和 XHTML 区别
HTML 和 XHTML 区别
1.初级改善
- 为页面添加正确的DOCTYPE
很多设计师和开发者都不知道什么是DOCTYPE,DOCTYPE有什么用。
DOCTYPE是document type的简写。主要用来说明你用的XHTML或者HTML是什么版本。
浏览器根据你DOCTYPE定义的DTD(文档类型定义)来解释页面代码。
所以,如果你不注意设置了错误的DOCTYPE,结果会让你大吃一惊。
XHTML1.0提供了三种DOCTYPE可选择:
(1)过渡型(Transitional )
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
(2)严格型(Strict )
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
(3)框架型(Frameset )
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
对于我们初级改善来说,只要选用过渡型的声明就可以了。
它依然可以兼容你的表格布局、表现标识等,不至于让你觉得变化太大,难以掌握。
Tip:你懒得输入上面过渡型代码的话,可以访问http://www.macromedia.com/网站的首页,然后查看源代码,把head区同样的代码拷贝粘贴就可以了。
- 设定一个名字空间(Namespace)
直接在DOCTYPE声明后面添加如下代码:
- <html XMLns="http://www.w3.org/1999/xhtml" >
一个namespace是收集元素类型和属性名字的一个详细的DTD,namespace声明允许你通过一个在线地址指向来识别你的namespace。只要照样输入代码就可以。
- 声明你的编码语言
为了被浏览器正确解释和通过标识校验,所有的XHTML文档都必须声明它们所使用的编码语言。代码如下:
- <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
这里声明的编码语言是简体中文GB2312,你如果需要制作繁体内容,可以定义为BIG5。
- 用小写字母书写所有的标签
XML对大小写是敏感的,所以,XHTML也是大小写有区别的。所有的XHTML元素和属性的名字都必须使用小写。
否则你的文档将被W3C校验认为是无效的。例如下面的代码是不正确的:
- <TITLE>公司简介</TITLE>
正确的写法是:
- <title>公司简介</title>
同样的,<B>改成<b>等等。这步转换很简单。
- 为图片添加 alt 属性
为所有图片添加alt属性。alt属性指定了当图片不能显示的时候就显示供替换文本,这样做对正常用户可有可无,但对纯文本浏览器和使用屏幕阅读机的用户来说是至关重要的。
只有添加了alt属性,代码才会被W3C正确性校验通过。注意的是我们要添加有意义的alt属性,象下面这样的写法毫无意义:
- <img src="http://www.mamicode.com/logo_unc_120x30.gif" alt="logo_unc_120x30.gif">
正确的写法:
- <img src="http://www.mamicode.com/logo_unc_120x30.gif" alt="UNC公司标志,点击返回首页">
- 给所有属性值加引号
在HTML中,你可以不需要给属性值加引号,但是在XHTML中,它们必须被加引号。
例:height="100",而不能是height=100。
- 关闭所有的标签
在XHTML中,每一个打开的标签都必须关闭。就象这样:
- <p>每一个打开的标签都必须关闭。</p> <b>HTML可以接受不关闭的标,XHTML就不可以。</b>
这个规则可以避免HTML的混乱和麻烦。
举例来说:如果你不关闭图像标签,在一些浏览器中就可能出现CSS显示问题。用这种方法能确保页面和你设计的一样显示。
需要说明的是:空标签也要关闭,在标签尾部使用一个正斜杠"/"来关闭它们自己。例如:
- <br />
- <img src="http://www.mamicode.com/webstandards.gif" />
经过上述七个规则处理后,页面就基本符合XHTML1.0的要求。但我们还需要校验一下是否真的符合标准了。
我们可以利用W3C提供免费校验服务(http://validator.w3.org/)。发现错误后逐个修改。
在后面的资源列表中我们也提供了其他校验服务和对校验进行指导的网址,可以作为W3C校验的补充。
当最后通过了XHTML验证,恭喜你已经向网站标准迈出了一大步。不是想象中的那么难吧!
用实体字符代表>,<,空格,&等
以下最后都要加上‘;‘分号
- >
- <
2.中级改善
接下来我们的改善主要在结构和表现相分离上,这一步不象第一步那么容易实现,我们需要观念上的转变,以及对CSS2技术的学习和运用。
但学习任何新知识都需要花点时间的,不是吗?诀窍在于边做边学。
假如你一直采用表格布局,根本没用过 CSS,也不必急于跟表格布局说再见,你可以先用样式表代替 font 标签。
随着你学到的越多,你能做的就越多。好,一起来看看我们需要做哪些事:
- 用CSS定义元素外观
我们在写标识时已经养成习惯,当希望字体大点就用<h1>,希望在前面加个点符号就用<li>。
我们总是想<h1>的意思是大的,<li>的意思是圆点,<b>的意思是“加粗文本”。
而实际上, <h1>能变成你想要的任何样子,通过CSS,<h1>能变成小的字体,<p>文本能够变成巨大的、粗体的,<li>能够变成一张图片等等。
我们不能强迫用结构元素实现表现效果,我们应该使用CSS来确定那些元素的外观。例如,我们可以使
原来默认的6级标题可以看起来大小一样:
- h1, h2, h3, h4, h5, h6{ font-family: 宋体, serif; font-size: 12px; }
- 用结构化元素代替无意义的垃圾
许多人可能从来都不知道HTML和XHTML元素设计本意是用来表达结构的。
我们很多人已经习惯用元素来控制表现,而不是结构。例如,一段列表内容可能会使用下面这样的标识:
- 句子一<br /> 句子二<br /> 句子三<br />
如果我们采用一个无序列表代替会更好:
- <ul> <li>句子一</li> <li>句子二</li> <li>句子三</li> </ul>
你或许会说“但是<li>显示的是一个圆点,我不想用圆点”。事实上,CSS没有设定元素看起来是什么样子,你完全可以用CSS关掉圆点。
- 给每个表格和表单加上id
给表格或表单赋予一个唯一的、结构的标记,例如
- <table id="menu">
接下来,在书写样式表的时候,你就可以创建一个“menu”的选择器,并且关联一个CSS规则,用来告诉表格单元、文本标签和所有其他元素怎么去显示。
这样,不需要对每个%lt;td>标签附带一些多余的、占用带宽的表现层的高、宽、对齐和背景颜色等等属性。
只需要一个附着的标记(标记“menu”的id标记),你就可以在一个分离的样式表内为干净的、紧凑的代码标记进行特别的表现层处理。
中级改善我们这里先列主要的三点,但其中包含的内容和知识点非常多,需要我们逐步学习和掌握,直到最后实现完全采用CSS而不才用任何表格实现布局。