2007-05-31

网页制作知识: XHTML的目标,规则和细节

来源: 本站收集整理 作者:佚名 评论 0 条
 

两个目的:

1,将页面的内容和形式清楚的分离开来
2,使页面内容更接近于XML

为什么要实现这两个目的,好多地方都有讲,不过,这里简单的讲两条

1,跟为什么ASP.NET要分层是一个道理,内容和形式分离后,一个符合XHTML规范的页面的外观可重覆设计而无需更改页面内容

2, 跟XML靠近的原因,这个好多地方有讲,最重要的是,HTML固然能被IE解析,可他那过于宽松的形式,大量的形式标记,无助于表示语义,一句话, HTML是用来呈现的,可它却忘了数据的重要性,数据不光要呈现,而且最好轻易理解,这一点恰恰是XML的优点,XML就是用来表示数据的

XHTML的版本标准有三个

XHTML 1.0 过渡版,这个比较宽松
XHTML 1.0 严格版,严格要求形式和内容分离
XHTML 1.0 框架版,加入了对FRAMESET的支持

XHTML 1.0包含哪些标准呢?或者说,什么样的页面才是XHTML1.0规范页面呢?

1,页面开头必须包含一个正确的XML DocType声明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

这个要注重,这个声明是告诉浏览器如何渲染页面的,想做个测试的话,你在DREAMWEAVER中做两个页面,一个用HTML,一个用XHTML标准,内容是一个100%宽100%高的表格,你给表格应用上边框,在IE里查看,你会发现,HTML标准的,表格确实是100%高100%宽,但是XHTML的就不会,表格高度无法到达100%高,这说明,IE在渲染时,是会根据DOCTYPE声明有所区别的

2,根元素必须指出XHTML命名空间

通常是HTML这个<html xmlns="http://www.w3.org/1999/xhtml">

3,所有元素和属性名要小写

4,属性值必须用双引号括起

这一条是很多人轻易忘记的,因为在HTML里,数值属性值,我们往往都不写双引号,像A标记的HREF,也可以不写

不过,VS.NET的选项里,有选项可以让VS.NET自动帮你产生属性值双引号,而且可以自动更改大小写,挺方便

5,每一个元素必须有结束标记,假如是空元素,则按XML规则来书写,就是说<IMG>要写成<IMG />

6,标记不要交叉,这一点应该没问题吧,不过,IE才不管你交不交叉,它的容错能力倒是超强(不是纠错哦)

7,属性必须有值,以前我们写CHECKBOX的属性,总是写<input type="checkbox" checked>这回不行了,得写成<input type="checkbox" checked="true" />

8,用ID属性取代NAME属性,这点顺理成章吧,究竟ID更深入人心,非凡是搞SERVER SIDE技术的,而且DHTML中,有许多涉及到ID的方法了,真不知道干啥还要用NAME(不是指INPUT类的哦,是指A,IMG等)

9,<script>及<style>标记的内容必须使用

<![CDATA[
]]>括起

这一点也轻易理解,要不,假如你<SCRIPT>中有<>形式的字符,也会被浏览器当成XHTML标记来渲染了,但是,你可千万别以为真是直接用上面的标记括呀,你要这样括了,IE一定报错,因为IE虽然熟悉他们,可是JAVASCRIPT会当它们是代码呀,怎么办呢?正确的办法是加上JAVASCRIPT注释

/*<![CDATA[*/
/*]]>*/

这样一来就行了,不过,我刚开始看到上面的方法,很怀疑,因为这样一来,IE咋解析/**/呢?原文说,"the CDATA section is hidden from the JavaScript, but not from the browser that parses the page",就是说,虽然JAVASCRIPT注释掉它,并忽略它,但是浏览器仍然会解析它
当然,更好的办法是把SCRIPT和STYLE放到外部文件中去
共2页: 上一页 1 [2] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:网页javascript精华代码集  
下一篇:知识:JScript错误代码及相应解释
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号