什么是网页标准?
译序:现在HTML5如日中天,各大浏览器都声称支持或者将支持HTML的特性,好像HTML5能够让互联网更美好,能让网站开发人员解放一样。或许大家被压抑太久,或许大家太乐观,或许标准真的已经深入人心了。看着火辣辣的HTML5,想想XHTML标准的尴尬,或许这个时候看看这篇写于2008年底文章会让我们更理解到底什么才是标准,标准能做什么,而我们应该做些什么……——神飞
在网站开发过程中,你会听到词语“标准”很多次。我的意思是,很多次。Internet Explorer因为不支持标准而广为诟病,Opera自称是唯一的一个真正努力地完全实现标准的浏览器,而全世界的开发人员又相互责备没有遵循标准。可笑的是,大部分人根本不理解什么是标准或者它们是怎么变成这样的。
让我们以互联网上的头号神话来说起:W3C创造了标准。这完全是错误的。W3C宣称的目标是创造标准,但是它不能够在实际上创造它们。为什么呢?因为,很简单,标准是大多数人决定要做的事情。因此,网页标准是大部分浏览器厂商决定要追随的。W3C可以推荐应该怎么做,但是它没有权利强制实施。如果W3C真的可以创造标准,那么我们也不会仍然在等待相关的浏览器支持XHTML了,它在1999年就完成了。W3C没有能力强制浏览器厂商做任何事情;每个人都能决定自己想做什么。甚至参与到W3C的浏览器厂商都不遵循某些规范(全部的浏览器厂商都这样)。
所以如果我和我的同伴这个周末聚到一起然后想出了一个很酷的JavaScript特性,那么我们就和W3C一样了。如果我们确定可以让Mozilla、Apple、Microsoft和Opera实现这个特性,那么我们就已经创建了一个新的标准了——和W3C一样。没有一个官方的标志或印章可以让一些东西成为标准,它只是由两个或更多浏览器来实现的。
W3C在创建标准上曾经很传统的不好。它们真正擅长的是文档化和标准化已经在浏览器中实现的东西。这样导致了HTML 4 和DOM 1的创建大部分是基于在IE 4中的创新。是的,同学们,微软在创建这些标准方面是比其它任何浏览器都更有影响力的,因为它们不断前进和创新而等不及有人告诉它们已经好了。
事实上,微软的很多创新都已经成为它们自己的标准,比如innerHTML 属性,XMLHttpRequest 对象,通过designMode的富文本编辑。没有浏览器敢不支持这些;这使它们成为了标准。W3C现在正在走一些流程将它们引入到HTML 5 规范 和XMLHttpRequest规范中。
责骂微软不支持标准似乎变得很流行,但是人们可以说,如果世界上最流行的浏览器不去实现某些东西,它就不会真正的成为标准。保守估计Internet Explorer在全球有80%左右的市场份额(2008年)。也就是说只有20%的互联网用户在使用“兼容标准”的浏览器。当只有市场上20%的用户使用它,它会是一个标准吗?仔细考虑一下吧。
真相是微软只是跟随了互联网中最顽固的企业的领导者:网景(Netscape)。网景是第一个说“我们要做我们想做的”的,然后引入了<blink>标签。历史表明在浏览器厂商开始创新的时候,网络也跟着进步了。微软不是唯一这样做的。Mozilla也实现了不标准的特性,比如XSLTProcessor;Safari 实现了<canvas> 标签;Opera 实现了<event-source> 标签和window.opera 对象。然而没有人抱怨它们做出了自己的东西和创新……只有微软是个坏小子。为什么这样?
正如Alex Russell多次指出的,创新并不在W3C的手中。真正的创新,可以带动互联网发展的创新,需要来自于浏览器厂商。让自由的市场来决定浏览器中最有用的特性然后让W3C去规范它吧。那才是真正的标准。等到伟大的HTML 5规范在2022完成了,不会推动网络向前发展。得让像Alex一样聪明的家伙开发浏览器才行(推动web进步)。
撒花
为什么统一标准这么难?因为谁有权利制定标准,后期就可以得到巨大的商业利益,如果想要这么做的话。也就是说,现在不是技术人员在推动标准,而是商人在推。那么害怕失去利益的商人就在互相争斗。比如以前的网景和微软的浏览器大战,和现在苹果和adobe的是否支持Flash的对战。
没有必要发什么牢骚,W3C也不是把MS排除在外的。只是IE6 真是自己的bug 太多太恶心。IE7 改了一点,IE8 和IE9 看起来还行。
有同感,IE6时代的静态、动态、转换滤镜,和目前发展中的CSS3中的某些动画特性极其相似。
凭什么CSS3中定义的动画就可能成为标准,而IE6的这些滤镜却落寞了呢。
比如:text-overflow这个IE私有的东西,逐渐演变成CSS3中的“标准了”。
IE6的Bug不恶心,想想01年出来的浏览器,我们还能要求它有多好呢,那个时候FF想想也未必很好。
IE6错就错在它的升级策略,等的太久了。。。
非常同意你的观点,为什么当初ie6(包括以后系列)没有设置自动升级呢?
w3c是否创作了标准,看每个工作组的成员就知道,HTML和CSS的开发人员分布各个公司和机构,然后自发在一起协商一个大家共同的认可的方案(标准),大家通常都想自己成为标准,微软不例外,当ie占主流时,01年出的ie6,06出的ie7,到现在9年了,ie6和ie7还占ie的大半份额。w3c好比联合国,互联网也许更不好约束。标准是会变的,但应该唯一,微软的贡献的确很大,不过不用为微软开脱,微软自己都坦诚ie对w3c的标准支持的最好(而骂声都是来自实际结果,毕竟在对margin和float等都没搞定的情况下,增加耗能的滤镜是功不低过的)。
w3c应该是提供了一个协调创新的平台来制定标准而不是守着一个一成不变的标准,浏览器开发商如果不基于w3c要么停滞不前(大部分时的ie)要么如脱缰野马(未来的chrome,然后又回归到停滞不前)。
如果未来不会更混乱,且html5像所说的超越xhtml是为了让web集中在应用而不是文档上,那么浏览器的多余就是必然的。
现在不是技术人员在推动标准,而是商人在推 犀利
其实现在还没有统一的标准
IE本身没那么差
IE没有自动升级和绑定在操作系统上是最不和谐的
对于电脑不熟悉的人不懂或不会去手动升级浏览器,也不会或不懂自己下载其它品牌的浏览器,这样就造成新技术不能得到普遍的应用
新技术普遍应用很好么? 不要去责备用户
新的技术的应用没什么不好,特别是遵循行业标准的
可能是我没说清楚
不是责备用户而是说IE没有自动升级策略
不是说IE不标准,只是IE6~8发展迅速而且有很大区别,几乎等于三个不同浏览器,而且用户量还不少。令人抓狂
这个目前好像还没有比较权威的答案….
IE6是比较让人抓狂
个人认为所谓的标准,并不是按大多数人来的..它只是给大家一个定律..就像我们国家的法律一样并不适合很多人的“它只是出了这么一个东西“叫我们遵循而已。必须要有一个统一的东西,不然就天下大乱了.W3C所提的就类似这个,
学习