反webkit之战

标签: Front News WebKit | 发表时间:2012-02-11 22:50 | 作者:神飞
出处:http://www.qianduan.net

历史总是在某个时候重演,这部,IE6离开历史舞台(国外,市场份额不足1%了)之后,webkit内核的浏览器成了大家的心腹大患,于是各种口诛笔伐开始了,甚至比当年打击IE6更甚。。。

标准与事实标准

最近10年,IE6对标准的支持让所有开发者都很头疼——事实上在 国内还远远没有结束,到现在IE6还有40%+的市场份额——IE6垄断了浏览器市场,它就是事实上的标准,所有的网站都要首先兼容IE6然后再兼容W3C标准,于是我们通常要为它对标准的不支持和自身的各种bug付出很多很多的时间和精力,所以你在一些页面中看到针对IE6甚至IE7的很不友好的行为或者源代码时,请理解一下前端开发者们极度苦逼的心情吧。。。

但是现在情况发生了很大的改变,IE6死了,而另一个垄断者webkit来了:

  1. 最近几年,webkit在apple的带领下发展很快,对W3C标准的支持方面一直在和opera/firefox赛跑。
  2. 托Google Chrome和Chromium开源项目(基于webkit内核)的福,webkit市场份额大增,Chrome在国外已经有接近四分之一的份额了,而国内,各种“壳”浏览器的“极速”、“快速”版等都是基于chromium开发的,也算是webkit
  3. 在智能终端,iOS+Android 垄断了市场,它们的内置浏览器都是基于webkit内核,于是webkit成了移动终端的No.1。

所以在前几天,2月7日,在W3C的CSS工作组的一次会议上,Firefox/Opera/微软都表示,将支持-webkit-前缀的CSS语法。

于是国外各个大牛们开始各种吐槽,包括 W3C联合主席丹尼尔·格拉兹曼带头讨伐担心webkit会阻碍开放标准的发展。。。

但是,罗马不是一日建成的:

  1. W3C联盟开发标准的流程是,会员单位发起某项提议,W3C接受后成立小组,然后开始写相关标准,经历草案、RC、建议等几个阶段后,才可以成为成熟的标准( 详细流程可以查看@junchen的介绍
  2. 浏览器对实验性的CSS属性,比如W3C的草案阶段的CSS3属性或者W3C会员自己发起的一些新功能(如之前提到的 CSS3 Region技术就是由Adobe发起的),会采用私有前缀-prefix-部分支持,待相关技术城市之后并且浏览器能完成相应的测试用例之后,才可以去掉前缀。
  3. CSS3的各种新特性,基本各个浏览器最初都是用私有前缀来渲染——虽然现在有的最新版本的浏览器对某些属性已经不需要私有前缀了,但是对于旧版本,还是要做下向下兼容,前端开发的工作量大大增加,通常要写4种不懂的前缀。
  4. 于是出现了一些解决方案,比如LESS/SASS可以建一些能够重用的变量,还有一些类似 -prefix-free的js方案。。。
  5. webkit现在成了移动终端的垄断者,一些移动网站/app开始不兼容webkit以外的浏览器。
  6. Firefox干脆开始支持某些-webkit-私有属性——最近半年陆陆续续在MDN上看到一些这方面的信息,泪流满面。。。
  7. 于是在2月7日W3C的会议上,浏览器厂商对这个问题进行了讨论,结论 就是大家都支持-webkit-吧,而 firefox无奈的称之为囚徒困境。。。

结语和争论

事情演变到现在,罪魁祸首还是 垄断,垄断者就成了事实上的标准,于是很多开发者为了降低开发成本会开发一些只兼容webkit的网站或应用。

但是依然对其它浏览器厂商的行为表示非常不解:

  1. 将来webkit没落了,firefox上去了,那么大家都改成支持-moz-前缀吗?这种方法解决不了根本问题啊;
  2. W3C的存在就是要提供一套标准的方案,你们既然能支持-webkit-前缀的功能,为什么支持不了标准行为呢?
  3. 向webkit妥协之后,拿什么和webkit竞争?
  4. webkit作为一个开源项目,自己希望看到这样的结果吗?

当然,对于前端开发者,我还是希望大家不要偷懒,要保证自己项目的可访问性和可用性,这是最基本的用户体验。

相关 [webkit] 推荐:

反webkit之战

- - 前端观察
历史总是在某个时候重演,这部,IE6离开历史舞台(国外,市场份额不足1%了)之后,webkit内核的浏览器成了大家的心腹大患,于是各种口诛笔伐开始了,甚至比当年打击IE6更甚. 但是现在情况发生了很大的改变,IE6死了,而另一个垄断者webkit来了:. 最近几年,webkit在apple的带领下发展很快,对W3C标准的支持方面一直在和opera/firefox赛跑.

翻译:WebKit for Developers

- - TaoBaoUED
Paul Irish 大湿为我们带来了这篇开年大作,文章深入浅出的阐述了各 Webkit port 的迥异,文笔细腻,是一篇不可多得的 Webkit 入门开胃菜. 为了让大家第一时间更好的品尝这道大菜,一丝特别邀请了几位 Webkit 专业开发人士作为本文的翻译顾问,在此表示由衷的感谢. 原文链接:  http://paulirish.com/2013/webkit-for-developers/.

[转]WebKit in iOS 8

- - justinjing的专栏
让我们说说iOS 8 的WebKit吧. WWDC 2014前几天,就有人发现了苹果向WebKit开源项目提交了一些很令人兴奋的代码,暗示了OS X和iOS,特别是iOS上的WebKit架构有所变化. 果不其然,WWDC上公布了iOS的新框架WebKit.framework,正式推出了新的网页浏览控件WKWebView.

轮回? webkit系的滤镜

- - 博客园_Ruby's Louvre
伟大的IE5.5团队创造性地为浏览器带来N多东西,把网影打得落花流水的同时,也让微软可以有肆无恐地十年不更新IE6了. 它留下的瑰宝之一CSS滤镜,也因为自身的原因与CSS3的崛起,处境尴尬. 然而即便如此,我们也少不了它,如alpha滤镜,实现透明效果,AlphaImageLoader滤镜让IE支持png透明,blur滤镜模拟CSS3盒阴影,更NB的是其矩阵滤镜,完全可以用来实现CSS3 transform 2D!其实CSS3的许多效果何尝不是对IE滤镜的再实现.

浏览器内核WebKit编年史

- belltoy - 月光博客
  回首六年前,2005年,网络和现在完全不同. 那时,浏览器大战已告尾声,虽然Netscape战斗英勇,但微软和Internet Explorer 的地位看起来越来越稳固. 看起来互联网正要落入这个邪恶帝国手上,还有一点,地球人已经阻止不了微软了.   然后在2005年6月7日,在WWDC上,Bertrand Serlet走上讲演台推出了并不被人看好的产品——苹果的浏览器的灵魂——Safari,它是开源产品.

Webkit 下的模拟点击问题

- - 芒果小站
这几天都在抢天猫的金砖,用火狐的 console 面板,通过 setInterval 定时执行点击模拟,大家都用的很爽. 不过发现 Chrome 下并不奏效,后来发现以下问题:. input 和 button 可以使用 document.getElementById(“J_Lucky”).click(); 并且是全兼容的,支持触发通过 onclick/addEventListener/attachEvent 等形式绑定的事件.

webkit webApp 开发技术要点总结

- - ITeye博客
如果你是一名前端er,又想在移动设备上开发出自己的应用,那怎么实现呢. 幸好,webkit内核的浏览器能帮助我们完成这一切. 接触 webkit webApp的开发已经有一段时间了,现把一些技巧分享给大家 :. 对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏、状态栏、滚动条等等之后用于看网页的区域,.

微软称 WebKit 破坏 Web 标准

- - ITeye资讯频道
这可能是微软做过的最奇怪和最具有反讽意味的事情,近日 微软 警告Web开发者不要使用WebKit,它认为WebKit是新的IE6,会导致Web开放标准和创新停滞. WebKit是移动平台上最流行的浏览器核心引擎,占据了九成的市场份额. 微软Windows Phone开发者博客 指出,大多数移动网站只支持Android和iOS平台的WebKit特定前缀,以圆角为例,WebKit的CSS圆角实现需要使用属性-webkit-border-radius,而未来的标准可能采用的将是border-radius.

苹果推迟发布LGPL WebKit源代码

- Mao - Solidot
苹果在KHTML项目基础上创建了WebKit分支,它是Safari浏览器的核心渲染引擎. KHTML采用授权协议是LGPL,因此WebKit也必须在LGPL下发布源代码. 苹果过去一直认真的遵循协议的要求,在更新后及时的向社区提供源代码. 然而,过去几个月苹果却推迟公开WebKit源代码,自三月份后苹果两次更新iOS版浏览器都没有反馈源代码.