分享
 
 
 

XHTML的目标,规则和细节

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

两个目的:

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放到外部文件中去

其他的部分是我的建议

1,废除掉一些旧的标记,例如font,b,i,u等,基本上是那些用于修饰格式的标记

2,尽量使用DIV来布局而不是TABLE,当然如果你不熟的话,用TABLE也可以,不过,还是慢慢熟的好,至于原因,我想,DIV至少在用ROBERT程序抓取时比TABLE好解析多了吧

3,用样式来控制页面布局及格式,尽量不要用内容样式,要问为什么的话,你想想看,内联样式重用率低,而且太分散

4,选一个好的XHTML编辑器

一个好的编辑器有助于事半功倍的帮你编写XHTML标准的页面

VS.NET的HTML设计器一向不是很好使,而且VS.NET2003根本未提供XHTML支持,它仅支持标记自动小写,自动为属性加双引号,不支持自动改写空标记,更不支持验证是否符合XHTML

在这里建议大家用MACROMEDIA DREAMWEAVER MX 8,它的确是这世界上最棒的HTML设计器了,它支持100%的XHTML特性,从创建到验证,特别是验证,可以让你在创建完后,验证是否有违犯XHTML规定的地方

一些细节

DoCTYPE开关

不同的DOCTYPE声明对于浏览器来说,在渲染处理上是不一样的,主要是像BOX的计算规则之类的处理上

这一点是很多人所不知道的,例如,IE6支持两种模式,一种是标准模式,另一种是宽松模式,如果是XHTML的页面,则会用标准模式处理,如果是普通HTML页面,则是用宽松模式来处理,所以,一个内容相同的页面,DOCTYPE不一样,出来的细节也有些差别

本文翻译和摘要了一篇来自由Stephen Walther发表于MSDN上的文档,原文见http://msdn.microsoft.com/asp.net/reference/design/default.aspx?pull=/library/en-us/dnaspp/html/aspnetusstan.asp#aspnetusstan_topic2

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有