遵循国际网站标准进行网站设计和改善(转)

转于:http://www.mfwu.net/mfwu/cool_950.htm 
 当我们觉得网站设计技术已经非常简单和熟悉的时候,国外网站设计标准化的概念早已悄悄的形成和迅速“蔓延”,自2000年起,大部分新发行的浏览器版本都开始支持网站标准。主流的网页编辑工具也开始全面支持网站标准,甚至一些软件几乎完全由XML文件组成,例如Dreamweaver MX 2004。一些著名的大型商业网站开始采用网站标准来重新构建(例如闪客帝国www.flashempire.com),另外一些则拒绝非标准浏览器浏览它们的网站(例如连线杂志www.wired.com)。众多的设计网站和个人网站更是标准推广的先行者,纷纷转向采用XHTML+CSS来建立。2004年2月4日XML1.1推荐标准正式发布,标志着网站设计的标准时代已经到来。


  让我们赶紧跟上新时代的步伐,遵循国际网站标准(Web Standards)进行网站设计和改善自己的网站,今天让一起来了解一下网站标准吧。


  一.为什么要建立网站标准

  我们大部分人都有深刻体验,每当主流浏览器版本的升级,我们刚建立的网站就可能变得过时,我们就需要升级或者重新建造一遍网站。例如1996-1999年典型的“浏览器大战”,为了兼容Netscape和IE,网站不得不为这两种浏览器写不同的代码。同样的,每当新的网络技术和交互设备的出现,我们也需要制作一个新版本来支持这种新技术或新设备,例如支持手机上网的WAP技术。类似的问题举不胜举:网站代码臃肿、繁杂浪费了我们大量的带宽;针对某种浏览器的DHTML特效,屏蔽了部分潜在的客户;不易用的代码,残障人士无法浏览网站等等。这是一种恶性循环,是一种巨大的浪费。


  如何解决这些问题呢?有识之士早已开始思考,需要建立一种普遍认同的标准来结束这种无序和混乱。商业公司(Netscape、Microsoft等)也终于认识到统一标准的好处,因此在W3C(W3C.org)的组织下,网站标准开始被建立(1998年2月10日发布XML1.0为标志),并在网站标准组织(webstandards.org)的督促下推广执行。

  简单说,网站标准的目的就是:

  提供最多利益给最多的网站用户
  确保任何网站文挡都能够长期有效
  简化代码、降低建设成本
  让网站更容易使用,能适应更多不同用户和更多网路设备
  当浏览器版本更新,或者出现新的网络交互设备时,确保所有应用能够继续正确执行。
  对于网站设计和开发人员来说,遵循网站标准就是使用标准;对于你的网站用户来说,网站标准就是最佳体验。

  访问量排名中国第1的新浪网站,也遭遇非标准DHTML的问题。在最新发布的Netscape7和Mozila1.6浏览器中,新浪首页的漂浮广告全部失效,层叠挤在页面左下角。也许那些广告主认为损失这些潜在的用户无所谓。


  二.什么是网站标准

  网站标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Association)的ECMAScript标准。我们来简单了解一下这些标准:

  1.结构标准语言

  (1)XML

  XML是The Extensible Markup Language(可扩展标识语言)的简写。目前推荐遵循的是W3C于2000年10月6日发布的XML1.0,参考(www.w3.org/TR/2000/REC-XML-20001006)。和HTML一样,XML同样来源于SGML,但XML是一种能定义其他语言的语。XML最初设计的目的是弥补HTML的不足,以强大的扩展性满足网络信息发布的需要,后来逐渐用于网络数据的转换和描述。关于XML的好处和技术规范细节这里就不多说了,网上有很多资料,也有很多书籍可以参考。

  (2)XHTML

  XHTML是The Extensible HyperText Markup Language可扩展标识语言的缩写。目前推荐遵循的是W3C于2000年1月26日推荐XML1.0(参考http://www.w3.org/TR/xhtml1)。XML虽然数据转换能力强大,完全可以替代HTML,但面对成千上万已有的站点,直接采用XML还为时过早。因此,我们在HTML4.0的基础上,用XML的规则对其进行扩展,得到了XHTML。简单的说,建立XHTML的目的就是实现HTML向XML的过渡。

  2. 表现标准语言

  CSS是Cascading Style Sheets层叠样式表的缩写。目前推荐遵循的是W3C于1998年5月12日推荐CSS2(参考http://www.w3.org/TR/CSS2/)。W3C创建CSS标准的目的是以CSS取代HTML表格式布局、帧和其他表现的语言。纯CSS布局与结构式XHTML相结合能帮助设计师分离外观与结构,使站点的访问及维护更加容易。

  3.行为标准

  (1)DOM

  DOM是Document Object Model文档对象模型的缩写。根据W3C DOM规范(http://www.w3.org/DOM/),DOM是一种与浏览器,平台,语言的接口,使得你可以访问页面其他的标准组件。简单理解,DOM解决了Netscaped的Javascript和Microsoft的Jscript之间的冲突,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、脚本和表现层对像。

  (2) ECMAScript

  ECMAScript是ECMA(European Computer Manufacturers Association)制定的标准脚本语言(JAVAScript)。目前推荐遵循的是ECMAScript 262(http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM)。


  三.遵循标准的网站与传统网站的区别

  传统网站只是印刷媒体的延伸,设计目标是保证在4-6个主流浏览器版本中看起来一致。通常的特征是:

  以表格为基础的布局。
  内容与表现方式混杂在一起。典型的例子是<font>标签。
  垃圾代码(非标准代码)。
  不易用的代码。
  语义不正确的代码。比如<b>不解释的话,你根本不明白这是字体加粗的意思。
而采用网站标准建立的网站是一个能够接受各种用户和各种设备的广泛的交流沟通工具。一般特征是:

  语义正确的标识。即使用能够表达含义的标签。保证代码可以在文本浏览器、PDAs、搜索引擎中被正确理解。


  正确有效的代码。通过W3C代码校验(http://validator.w3.org/)的就是正确代码。对人、机都易用的代码。能够接受广泛的用户和设备的访问,用CSS分离表现层和内容。使代码更简洁、下载速度更快,批量修改和定制表现形式更容易。


  四.采用网站标准的好处和缺点

  1.好处

  对网站浏览者的好处:

  文件下载与页面显示速度更快;
  内容能被更多的用户所访问(包括失明、视弱、色盲等残障人士);
  内容能被更广泛的设备所访问(包括屏幕阅读机、手持设备、搜索机器人、打印机、电冰箱等等)
  用户能够通过样式选择定制自己的表现界面
  所有页面都能提供适于打印的版本
  对网站所有者的好处:

  更少的代码和组件,容易维护
  带宽要求降低(代码更简洁),成本降低。举个例子:当 ESPN.com 使用 CSS改版后,每天节约超过两兆字节(terabytes)的带宽。
  更容易被搜寻引擎搜索到
  改版方便,不需要变动页面内容
  提供打印版本而不需要复制内容
  提高网站易用性。在美国,有严格的法律条款(Section 508)来约束政府网站必须达到一定的易用性,其他国家也有类似的要求。


  2.缺点

  需要花费更多时间来学习标准
  依然需要注意浏览器的兼容问题
  用 CSS 来实现某些表现反而比表格更为麻烦


  五.怎么改善现有网站

  我们大部分的设计师依旧在采用传统的表格布局、表现与结构混杂在一起的方式来建立网站。学习使用XHTML+CSS的方法需要一个过程,使现有网站符合网站标准也不可能一步到位。最好的方法是循序渐进,分阶段来逐步达到完全符合网站标准的目标。如果你是新手,或者对代码不是很熟悉,也可以采用遵循标准的编辑工具,例如Dreamweaver MX 2004,它是目前支持CSS标准最完善的工具。

  1.初级改善

  为页面添加正确的DOCTYPE,很多设计师和开发者都不知道什么是DOCTYPE,DOCTYPE有什么用。DOCTYPE是document type的简写。主要用来说明你用的XHTML或者HTML是什么版本。浏览器根据你DOCTYPE定义的DTD(文档类型定义)来解释页面代码。所以,如果你不注意设置了错误的DOCTYPE,结果会让你大吃一惊。XHTML1.0提供了三种DOCTYPE可选择:

  过渡型(Transitional )

  <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN

  http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>

  严格型(Strict )

  <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN

  http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>

  框架型(Frameset )

  <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Frameset//EN

  http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd>

  对于我们初级改善来说,只要选用过渡型的声明就可以了。它依然可以兼容你的表格布局、表现标识等,不至于让你觉得变化太大,难以掌握。

  技巧:你懒得输入上面过渡型代码的话,可以访问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>

  同样的,<P>改成<p>,<B>改成<b>等等。这步转换很简单。

  为图片添加 alt 属性


  为所有图片添加alt属性。alt属性指定了当图片不能显示的时候就显示供替换文本,这样做对正常用户可有可无,但对纯文本浏览器和使用屏幕阅读机的用户来说是至关重要的。只有添加了alt属性,代码才会被W3C正确性校验通过。注意的是我们要添加有意义的alt属性,象下面这样的写法毫无意义:

  <img src=”logo_unc_120x30.gif” alt=” logo_unc_120x30.gif”>

  正确的写法:

  <img src=”logo_unc_120x30.gif” alt=”UNC公司标志,点击返回首页”>

  给所有属性值加引号


  在HTML中,你可以不需要给属性值加引号,但是在XHTML中,它们必须被加引号。

  例:height=”100”,而不能是height=100。

  关闭所有的标签


  在XHTML中,每一个打开的标签都必须关闭。就象这样:

  <p>每一个打开的标签都必须关闭。</p>

  <b>HTML可以接受不关闭的标,XHTML就不可以。</b>

  这个规则可以避免HTML的混乱和麻烦。举例来说:如果你不关闭图像标签,在一些浏览器中就可能出现CSS显示问题。用这种方法能确保页面和你设计的一样显示。需要说明的是:空标签也要关闭,在标签尾部使用一个正斜杠“/”来关闭它们自己。例如:

  <br />

  <img src=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规则,用来告诉表格单元、文本标签和所有其他元素怎么去显示。这样,不需要对每个<td>标签附带一些多余的、占用带宽的表现层的高、宽、对齐和背景颜色等等属性。只需要一个附着的标记(标记“menu”的id标记),你就可以在一个分离的样式表内为干净的、紧凑的代码标记进行特别的表现层处理。

  中级改善我们这里先列主要的三点,但其中包含的内容和知识点非常多,需要我们逐步学习和掌握,直到最后实现完全采用CSS而不才用任何表格实现布局。限于本文是引导推广之意,不展开详述。

  最后我们特别需要补充介绍的是网站的易用性(Accessibility)和交互设计改善,易用性与网站标准有着标准联系紧密,和网站标准一样,都是为了使我们的网站接受更多的用户访问。1990年W3C建立了Web Accessibility Initiative(WAI),给网站建造者提供实现可访问性的方法和策略(http://www.w3.org/WAI/GL/)。提高易用性和研究交互设计(推荐VB之父Alan Cooper的About Face2.0一书)的策略能提高你的开发技术,开阔视野。提高你作为专业网页设计师的价值,使你更具竞争力。这正是每个网站所有者和每个设计师或开发者要努力达到的目标。


  六.网站标准的资源

  1.网站标准

http://www.zeldman.com/

http://webstandards.org/

http://webstandardsgroup.org/

http://www.nypl.org/styleguide/

  2.有语义代码

http://brainstormsandraves.com/articles/semantics/structure/

  3.校验(Validation )

http://validator.w3.org/

http://www.htmlhelp.com/tools/validator/

http://webboy.net/presentation/validation.cfm

  4.易用性(Accessibility )

http://www.joeclark.org/

http://www.accessify.com/

http://www.juicystudio.com/

  5.样式表CSS

http://webboy.net/presentation/ict2004/01.htm

http://webboy.net/presentation/ict2004/02.htm

http://webboy.net/presentation/ict2004/03.htm

http://westciv.com/style_master/academy/css_tutorial/

http://css.maxdesign.com.au

http://www.thenoodleincident.com/tutorials/css/

  6.实例站点(XHTML+CSS)

http://www.macromedia.com/

http://www.k10k.net

http://www.fyrebase.com/

http://www.onetruefit.com/

http://pixeltable.com/

http://www.fishmarketing.net/

  附.参考文章及网站

  Jeffrey Zeldman(www.zeldman.com)著作《Design with Web Standards》,该书已经由电子工业出版社引进,即将发行中文版。


  Max Design的文章:《The benefits of Web Standards to your visitors, your clients and you!》http://www.maxdesign.com.au/presentation/benefits/index.htm
  Mark Pilgrim 《Dive Into Accessibility》http://diveintoaccessibility.org
  网站标准组织www.webstandards.org
  网站标准团体www.webstandardsgroup.org

转载于:https://www.cnblogs.com/ucetgg/archive/2007/10/15/924283.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server查询结果中添加自动编号

往往经常有这样的需求&#xff0c;我需要在查询的结果中添加一列类似于Identity的数字&#xff0c;虽然在Client编程中并不难实现&#xff0c;但是有时我想留用现有的Class&#xff0c;不希望在Client side做额外的coding&#xff0c;那么就只有在Sql里面想办法了 首先介绍一种…

linux 培训6,Linux Syscalls有 6个参数(Linux Syscalls with 6 parameters)

Linux Syscalls有> 6个参数(Linux Syscalls with > 6 parameters)是否可以编写一个具有6个以上输入参数的(linux内核)sycall函数&#xff1f; 查看标题我发现定义的系统调用宏最多有6个参数。 我很想尝试定义SYSCALL7和SYSCALL8以允许7和8参数&#xff0c;但我不太确定它…

c语言搜索子字符串

c字符串功能练习&#xff1a; 获取一行字符串&#xff0c;然后&#xff0c;在这行字符串中搜索是否包含一个小字符串 #include <cstdio> …

asp.net 导出word excel 当前上下文中不存在名称“Encoding”报错问题

web页面<% Page Language"C#" EnableEventValidation"false" AutoEventWireup"true" CodeBehind"CheapMaterialManageSet.aspx.cs" Inherits"AssetsManager.DeskWeb.BaseDOC.CheapMaterialManageSet" %>using System.…

linux中fstab含义,fstab每一列的含义

&#xff1c;fstab文件总览&#xff1e;当然&#xff0c;由于每个人的分区和设备属性或者所在的系统不同&#xff0c;所以fstab文件不尽相同&#xff0c;但是基本的结构总是相似的&#xff0c;下面是/etc/fstab中内容的一些示例&#xff1a;/etc/fstab:/dev/hda2 / ext2 defaul…

命令编写注册表文件修改注册表项

命令编写注册表文件修改注册表项 1、何谓REG文件REG文件实际上是一种注册表脚本文件&#xff0c;双击REG文件即可将其中的数据导入到注册表中。利用REG文件我们可以直接对注册表进行任何修改操作&#xff0c;它对注册表的操作可以不受注册表编辑器被禁用的限制&#xff0c;因此…

linux 刻录cd,Linux 刻录CD/DVD命令 growisofs/mkisofs/cdrecord

1 . 制作ISO&#xff1a; $ mkisofs -V LabelName -J -jcharsetutf8 -r -o /home/TargetImage.iso /home/my-data-dir参数V是volumn ID,卷标&#xff1b;参数J表示产生Joliet ( name of an extension to the ISO 9660 file system) , 制作与windows兼容的盘。2. 查看设备&#…

UOJ#196. 【ZJOI2016】线段树 概率期望,动态规划

原文链接www.cnblogs.com/zhouzhendong/p/UOJ196.html 题解 先离散化&#xff0c;设离散化后的值域为 $[0,m]$ 。 首先把问题转化一下&#xff0c;变成&#xff1a;对于每一个位置 $i$ &#xff0c;求出它最终不超过 $j$ 的方案数。 考虑如何求这个东西。 对于一个固定的 $j$ &…

又论社区风气, 与程序员是干嘛地的.

为了避免误解, 重新声明一下, 本文纯粹针对"博客园风气如何如何, 博客园的话题如何如何"这些说法, 不含有任何不用基础学习或者必须学习某一方面/最好广泛学习或者必须深钻一门等倾向, 如果有的话说的有偏向性, 请当作一时表达不清. "我可以不同意你的观点, 但我…

在手机上如何用c语言编译器编程,如何用手机进行编程?

这里介绍3种可以在手机上编程的app&#xff0c;分别是c语言编译器(c语言)、AIDE集成开发环境(java)、QPython3(python)&#xff0c;都不需要root&#xff0c;可以直接编写程序并运行&#xff0c;下面我简单介绍一下这3个app的安装和简单使用&#xff0c;主要内容如下&#xff1…

SDOI2014 旅行

传送门 省选前水一发 这题一开始看标签是主席树……后来……这题和主席树有啥关系…… 可以想到对于每种宗教用树剖线段树维护即可。然后因为空间不够要动态开点。然后改宗教&#xff0c;改评级的&#xff0c;把原来的点删了再插一个新点就可以了。查询最大值&#xff0c;和就直…

API函数的调用(包含一个大小写的问题)

遇到问题&#xff1a; 今天做的一个程序要调用AnimateWindow()函数来实现窗口的动画效果&#xff0c;参考书上在类的成员函数中直接调用该函数&#xff0c;没有做任何处理。然而实验时发现编译通不过。 解决过程&#xff1a; 查看MSDN后,发现AnimateWindow()函数说明中…

第一个openGL程序

一、工具的安装 因为要写C程序&#xff0c;为了便捷&#xff0c;这里我安装的Visual Studio&#xff1b; 免费使用90天&#xff01;安装好了之后&#xff0c;我们要为我们的开发安装相应的工具集&#xff1b; 因为我是要在windows上跑的&#xff0c;所以选择如下两个包&#xf…