XHTML的目标,规则和细节

xhtml

 
两个目的:
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

时间: 2025-01-20 21:12:24

XHTML的目标,规则和细节的相关文章

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

xhtml|网页 两个目的: 1,将页面的内容和形式清晰的分离开来2,使页面内容更接近于XML 为什么要实现这两个目的,好多地方都有讲,不过,这里简单的讲两条 1,跟为什么ASP.NET要分层是一个道理,内容和形式分离后,一个符合XHTML规范的页面的外观可重覆设计而无需更改页面内容 2, 跟XML靠近的原因,这个好多地方有讲,最重要的是,HTML固然能被IE解析,可他那过于宽松的形式,大量的形式标记,无助于表示语义,一句话, HTML是用来呈现的,可它却忘了数据的重要性,数据不光要呈现,而且最

XHTML结构化:使用XHTML按标准重构网站

xhtml|标准 我们曾经为本节撰写的标题是:"XHTML:简单的规则,容易的方针."原因之一是,本节讨论的规则和方针是简单和容易的.原因之二是,一本简单和容易的WEB设计图书,就像超级市场的新式的免费商品一样,虽然常见却可以有效地吸引人的眼球,这样的东西可以刺激人的兴趣,并且鼓励人们尝试. 我确实希望本节的内容可以激发你的兴趣,并鼓励你去尝试.为什么这么说呢?因为一旦你掌握了本章包含的简单容易的理念,你就会重新思考网页运作的方式,并开始改变建造它们的方法.然而我并不希望你只是将代码重

数据库 规则

 规则(Rule) 就是数据库中对存储在表的列或用户自定义数据类型中的值的规定和限制.规则是单独存储的独立的数据库对象.规则与其作用的表或用户自定义数据类型是相互独立的,即表或用户自定义对象的删除.修改不会对与之相连的规则产生影响.规则和约束可以同时使用,表的列可以有一个规则及多个CHECK 约束.规则与CHECK 约束很相似,相比之下,使用在ALTERTABLE 或CREATE TABLE 命令中的CHECK 约束是更标准的限制列值的方法,但CHECK 约束不能直接作用于用户自定义数据类型.

CSS中一些@规则的用法小结

  at-rule是一个声明,为CSS提供执行或怎么表现的指令.每个声明以@开头,后紧跟一个可用的关键字,这个关键字充当一个标识符,用于表示CSS该做什么.这是一个通用的语法,尽管每个at-rule有其它语法变体. 常规规则 常规规则遵循下面的语法: 代码如下: @[KEYWORD] (RULE); @charset 这个规则定义了浏览器使用的字符集,如果样式表包含非ASCII characters (e.g:UTF-8).注意,被放在HTTP头部的字符集将会覆盖@charset规则 代码如下:

iptables规则配置 增加、删除和修改命令

介绍 iptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置. Iptables命令的管理控制选项 -A(append) 在指定链的末尾添加一条新的规则 -I (insert)在指定链中插入一条新规则,为指明插入位置 -D(delete)删除制定链里的某条规则 -R (replace)修改.替换

《HTML5+CSS3网页设计入门必读》——1.7 XHTML已被废弃:XHTML的语法永存

1.7 XHTML已被废弃:XHTML的语法永存 种种迷团终于在2009年烟消云散.W3C宣布不再续颁XHTML 2工作组的委任状.实际上,这种格式已经被废弃好几年了.这次的宣布差不多可以看成是为它补发了一张死亡证明. 奇怪的是,XHTML 2并没有平静地逝去,不少兴灾乐祸的人跳出来大放厥词.XML的反对者趁机奚落使用XHTML 1的开发人员-甚至忽略了XHTML 1和XHTML 2几乎没有任何共同点这一事实. 这时候,那些遵照XHTML 1严格规则的开发人员又担心起来,生怕HTML5又重新开始

什么是html,xhtml

因为是现在才学习html,所以我还是按照标准来,也就是符合w3c标准,这样的话做出来的东西也比较好点,也就直接学习xhtml.         XHTML 是什么?         * XHTML 指扩展超文本标签语言(EXtensible HyperText Markup Language).         * XHTML 的目标是取代 HTML.         * XHTML 与 HTML 4.01 几乎是相同的.         * XHTML 是更严格更纯净的 HTML 版本.  

JavaScript在XHTML中的用法详解_基础知识

编写XHTML代码的规则要比编写HTML要严格得多,类似下面的代码在HTML中是有效的,但在XHTML中则是无效的. [javascript] 复制代码 代码如下: <script type="text/javascript"> function compare(a, b) { if(a < b) { alert("a is less then b"); } else if(a > b) { alert("a is greater

通向web标准之路

web|web标准 作者前言 今天下午,我的一个朋友问我:对于一个想了解web标准的老网页设计师有什么建议. 我想将我的email回复贴在这里让更多人看见将是一个很好的范例.我的回复是:这有一个全面的,非正式的,有些罗嗦的指南,送给所有听说过web标准,希望使用web标准却又不知道从哪里开始设计师. 正文 首先不要急着开始!在做任何事情之前做好2个心理准备,这对你的学习过程是最重要的事情: 1).学习需要时间,要循序渐进: 2).前进的过程中会遇到挫折. 但是你并不孤独,我们中许多人正在投入到学