如何评价 Windows Phone 8.1 Update 1 更新 IE11 兼容并渲染 -webkit- 代码的行为?

关注者
199
被浏览
12087

14 个回答

  1. 对用户是好事,IE 在移动端的网站兼容性大大提高。
  2. -webkit 已经成为移动端的事实标准,以至于连微软都不得不为此妥协。
  3. IE 还更改了 User Agent 字符串以提高兼容性,可见移动端有很多网站依赖于 UA 检测来提供各项功能。网站兼容理论上应该更倾向于用 Feature Detection 来做而不是检查 UA 这种 hack,不过考虑到移动端的现状,UA 更多的是用在后端模板渲染时判断输出何种页面,也情有可原。
  4. kind of sad,很多 Web 开发人员都太不负责了,无视标准,不然何至于此。
  5. vendor prefix 已经被各路大神批判过无数遍了,包括 Paul Irish(Vendor prefixes are not developer-friendly)、Nicholas C. Zakas(Blink and the end of vendor prefixes)、ppk(CSS vendor prefixes considered harmful)。还有 CSS-Trick 上的相关文章(TL;DR on Vendor Prefix Drama)以及 SitePoint 上这篇(The Impending CSS Vendor Prefix Catastrophe)。vendor prefix 对 Web 标准的演进显然是有害无益的。
  6. 负责任的开发者应当尽可能地使用不带前缀的标准 CSS,然后使用 Autoprefixer 一类的工具自动添加 vendor prefix,以保证不破坏代码的兼容性。

发现我给 @一丝 的评论太长,可以作为一个独立的回答了。

我不认为采用和别的浏览器类似的 UA 是流氓手法。这个手段古已有之,从 IE 1 的 UA 以 Mozilla 开头就是为了模仿 Netscape, 到 Apple 的 like Gecko 再到 Chrome 的 AppleWebKit (虽然 Chrome 的渲染引擎确实是 — 如果不算 Blink 也至少曾经是 — WebKit) — 如今哪个浏览器的 UA 不以 Mozilla 开头,又有哪个浏览器没有 Gecko 或者 like Gecko?

另外在我看来, IE 的表单默认 UI 还过得去吧,并且对表单相关 pseudo-classes 支持也很完善,自定化也用不着 appearance 就可以做到很好。个人认为, appearance 就是为了掩饰部分浏览器渲染部分元素的「不可化约的复杂性」的一种鸡肋功能。

关于前缀。

我尽量把自己的 CSS 限制在 CSS 2.1 + Media queries + transitions 和半透明效果之内。这些属性即使不带前缀,当前版本的浏览器也基本上支持完全,所以用不着写那么多前缀。(刚才看了一下, transform 我还是写了一大堆 -webkit- — 但也仅此而已。)

即使浏览器不支持所用到的属性,也不至于对可用性产生任何不好的影响。这是我的 baseline.

最后, Netscape 永远活在一切浏览器的 navigator.AppName 之中。


以及 IE7 for Windows Phone 曾经一度决定支持 WebKit 前缀。但是最终还是没有。

就这样拖到了 IE11.


以上。

为什么?