web标准不标准
引言:
一群会用table蹩脚布局的网页初学者嘲笑着那些对网页制作一窍不通的门外汉;而一群自认为table布局无所不能的table布局拥护者则嘲笑着那群用table蹩脚布局的网页初学者;那些刚试着将几个页面中的table换成div的所谓的web标准设计者则嘲笑这那群死抱table布局不放的table布局设计者;而一群焦头烂额终于在网站上贴上“W3C验证通过HTML网站”图标的自认高高人的web标准设计者则嘲笑这那群以为“DIV+CSS”就是web标准的web标准设计初学者;但是当我们把我们的网页放在不同的浏览器中的时候,却发现我们全部都被“Web标准设计”嘲笑了……
正文:
标准:衡量事物的准则。例句:惟极贫无依,则械系不稍宽,为标准以警其余。——清•方苞《狱中杂记》
Standard: An acknowledged measure of comparison for quantitative or qualitative value; a criterion.
无论是中外古今的对于标准一词的解释都很相近。即:标准是一个准则。那么冠以“标准”前缀的词,则必须符合此准则。如:
标准大气压(standard atmospheric pressure):指在纬度为45°的海平面上,温度为0°C时的大气压,相当于76厘米高的水银柱所产生的压强。
标准照(official portrait):指人的正面半身免冠相片。
那么冠以“标准”前缀的web标准设计,也必须有一个衡量的准则方可。但是我们发现所谓的衡量web标准是否标准的准则并不存在,至少目前还没有成型。没有衡量准则,标准何以言之为标准?
推荐遵循标准不是严格意义上的标准
当你试图在网上查找“什么是web标准”时,找到的多数是将web标准引入中国的先驱阿捷的文章《什么是web标准》。虽然里面提到了各个组成部分的“推荐”遵循标准,但是那些也都只是W3C组织“推荐遵循”的标准。大家都知道W3C标准不是强制性标准,所以像微软这样喜欢“卖标准”的一流公司并不完全买W3C的帐。所以那些所谓的“推荐标准”从严格意义上来说并不是全面的、严格意义上的认证标准。
注:虽然W3C的推荐标准不是严格意义上的标准,但是我们绝对不可以无视。因为它们的确很有指导意义。而且我们非常欣慰的看到:虽然IE7为了向前兼容,保留了一些IE6的诡异解析方式,但是它也正在逐渐的遵循这些标准。所以这些标准现在是“推荐遵循标准”,但是在不久的将来极有可能成为真正的标准准则,那个时候就是“web标准大统一”的黄金年代。所以还没有看过下面这些文章的朋友要抓紧时间啦。
W3C推荐遵循web标准文档列表:
- XML方面:《Extensible Markup Language (XML) 1.0 (Second Edition)》
- XHTML方面:《XHTML 1_0 The Extensible HyperText Markup Language (Second Edition)》
- DOM方面:《W3C DOM规范》
- CSS方面:《Cascading Style Sheets, level 2 CSS2 Specification ver.12-May-1998》
- Script方面:《ECMAScriptLanguage Specification》
web标准与否不能被有效验证
即使我们暂且将那些“推荐遵循标准”视为标准,我们仍然有很多问题。例如:怎么检验我们的页面就是符合那些“推荐遵循标准”的呢?的确,我们有验证工具,但是那些验证工具的验证结果就是正确的吗?web标准一个重要的部分就是,根据标签的语义来使用它们。例如table是用来呈现表格数据的,而不是用来分割文档的(也就是平时说的布局)。但是一些利用table布局的页面也能顺利的通过验证工具的验证。所以那些验证工具的验证结果也只能作为一种参考。
语义是道多选题
说道标签的语义,这也会带出一些问题。因为当我们决定使用哪种标签的时候,我们会发现我们面对的是多选题,而不是单选题。因为某些情况利用多种标签时都是符合语义的。我们举个最简单的例子:
你说“Name:”应该用什么标签包起来?label?span?其实无论使用哪个都是符合各自的语义的。正是这种“多选题”让web标准显得有些朦胧。
树欲静而风不止
即使上面的问题都不再是问题了,我们仍然有一个大问题——各种浏览器对web标准的支持不统一。也正是这种标准不统一的大环境让web标准显得缥缈、遥不可及。看到论坛上天天有人在骂“垃圾FF”、“垃圾IE7”、“垃圾IE6”……纵观世界,能生存下来的只有两种生物——改变环境以适应自身发展的,例如人类;改变自身以适应环境发展的,例如:变色龙。当我们不能改变这个世界的时候,那么就改变自己去适应这个改变的世界吧。
有限的资源,努力的去做
Web标准不标准,至少是现在没有统一的标准,但是网页还是要做,工程还是要赶。我们能做的,只能是合理的利用手头的有限的资源,努力的去做到最好。这句话包含了两个方面的含义:有限的资源,努力的去做。
有限的资源:
当你躺在象牙塔里,努力的让你的个人网站贴上W3C认证标签的时候,你是无可厚非的,因为你的资源是那么的充足,时间、青春、没有项目时间的催促,没有客户的最后通牒。但是当你真正的在做商业项目的时候,你会发现我们能利用的资源是及其有限的。人力资源,物质资源,时间资源都是那么的捉襟见肘。当你有分配这些资源的权利的时候,你才会发现分配这些资源的责任。我们的项目,绝对不会为了那张W3C认证标签而浪费宝贵的资源。
努力的去做:
但是有限的资源绝对不是粗制滥造的借口。事实上,我们项目对于质量是及其重视的。项目经理提出的“质量是项目之本”的结论已经在我们团队达成共识。给测试部门的测试资源,我们向来都安排在整个工程的1/5以上。(分析设计过程3/5以上,代码coding1/5以下,其余的给测试部)。
但是努力的去做,到底要做成什么样?其实也并不是没有参考。当你看Andy Budd的《样式指南示例》中我们可以看到一些国际上对此问题的处理方法的端倪,他在1.4小结提到了Browser Support的概念。然后他提出了对不同浏览器支持的不同程度:
- Target – Most popular browsers at present. Everything must work as intended
- Supported – Old but popular browser. All content and functionality must work with minimal degradation.
- Partially supported – Old and buggy browsers. Not supported but not officially unsupported. Content and functionality must work. Degradation must be graceful and should not obscure content.
- Unsupported – Buggy and unsupported browsers. Advice current users to upgrade.
我认为这是正确的做法,选定主流的浏览器,然后对主流的浏览器进行Target支持,而对于次之的浏览器进行Supported支持。而对于一些老版本的浏览器进行Partially Supported甚至完全不去管。这样就能最大可能的让网站被浏览者正常的浏览。当然将哪些浏览器,哪些版本进行Target支持,需要根据项目的使用群来决定。例如我们最近的一个日本母公司内部使用的B/S系统,因为我们知道他们那边使用者的电脑软件配置情况,所以我们进行了如下的浏览器支持定义:
IE7+:Target
IE6+:Supported
FF :Partially Supported
Other:Partially Supported or Unsupported
正是有了这个浏览器支持表单,让我们调画面的时候有的放矢,有所侧重。而不是一味的让所有的浏览器都正常支持而浪费时间(而且让所有的浏览器正常支持也只能是一种理想状态)。
Web标准难不难?
没进来的人说:很难!
刚站在门框上的人说:不过如此。
站在门里面的人则说:web标准的路还有很长一段要走……
后记:
当初起这个名字的时候就知道会遭到很多人的炮轰。反正早已练就“无敌厚脸皮”神功。骂也无妨,驳也无妨,炮轰也无妨。因为正是你们的留言,你们的论点,你们的讨论让web标准之路能够走的更远,走的更平坦。
keyword:web标准不标准,为什么要用web标准设计,w3cweb标准,web2.0标准,web标准,web标准css,web标准table,web标准与网站重构,web标准布局,web标准教程,web标准校验,web标准的好处,web标准的网站,什么是web标准,用web标准进行设计,网站布局实录基于web标准的网站设计指南,网站重构应用web标准进行设计