小心

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您的旅程每个阶段提供云产品。开始使用 免费的$200信用额度!

Tom Warren 在 The Verge 上发表的“Chrome 正在变成新的 Internet Explorer 6”一文,其标题对我们前端网页开发者来说,暗示了 Chrome 正在变成一个技术落后且充斥着棘手 bug 的浏览器。除了偶尔听到的一些随意的、泛泛的评论,比如“Chrome 最近变得很糟糕,”我们都知道这并不属实。Chrome 通常在良好的网页技术方面处于领先地位。

相反,这是一个同样令人担忧的危险:开发者专门针对 Chrome 构建网站。理论上,这并不是真正存在的,因为如果你使用网页标准(实际上没有多少替代方案)构建一个网站,它在 Chrome 中的效果和其他任何现代网页浏览器一样。但如果你构建的网站是为了某种方式阻止其他浏览器,只允许 Chrome,那么它确实存在。Warren

Google 一直是我们在网上开始看到很多“最适合 Chrome 的网站”信息的中心。Google Meet、Allo、YouTube TV、Google Earth 和 YouTube Studio Beta 都会阻止 Windows 10 的默认浏览器 Microsoft Edge 访问它们,并指示用户下载 Chrome。Google Meet、Google Earth 和 YouTube TV 也不支持 Firefox,并会提示用户下载 Chrome。

我不会称之为流行病,但它不是一个好趋势。据我所知,它是服务器端的 UA 嗅探,它完全阻止了网站。

哎呦。

如果有什么区别的话,我认为你应该让人们使用网站,并在你真正担心某个特定功能可能无法正常工作时显示一个警告。或者更进一步,修复它。我对他们为什么选择阻止某些浏览器没有后台了解,但很难想象有什么技术限制会强迫他们这样做。如果是这样,我建议让他们公开宣布,以激励其他浏览器支持所需的功能,假设它是已建立的标准。

比浏览器特有的网站更令人担忧的是,看到浏览器发布非标准化功能,仅仅因为他们想要,而不是出于任何供应商前缀或标志的缘故。曾经有一段时间,如果浏览器这样做,网页开发者会拿起干草叉。但我感觉到某种自满情绪正在蔓延。

如今,这种氛围更多地集中在抱怨其他浏览器缺乏对某些事物的支持。例如,一个浏览器发布了一些东西,我们在 caniuse 中看到一个绿点,然后我们就痛斥其他浏览器赶快跟上。相反,我们可能会问,现在发布这个功能是明智的吗?

自从我们最终决定供应商前缀是一个坏主意之后,没有哪个现代浏览器再发布供应商前缀了。这样做的一个副作用是,在 CSS 或 JavaScript 中发布一个新功能会更加冒险。我认为将一个没有前缀的功能发布到浏览器的稳定版本,意味着该功能是标准化的,不会发生重大变化。然而,这种情况一直在发生。

在 CSS 中,Chrome 发布了 motion-* 属性,但随后这一切都变成了 offset-*,旧的 motion-* 属性就停止工作了。这不仅仅是令人讨厌,这种事情有助于开发者证明他们说“我只针对 Chrome 构建这个网站,如果你想使用它,就使用 Chrome”的理由。也许对于演示来说还不错,但对于整个网页行业来说,这很糟糕。同样,我对这种情况没有特别见解,我只是一个从外部观察的开发者。

这是我前几天看到的另一个 CSS 问题。人们对 text-decoration-skip: ink; 感到兴奋,因为它看起来很棒,而且对人们有帮助。他们正在广泛使用它。但显然,这并不是它的正确名称?它已经被更改为 text-decoration-skip-ink: auto;,因此 Chrome 64 正在 废弃 text-decoration-skip: ink;。即使积极尝试,也很难跟上这些变化。

Chris Krycho 最近也 谈论了这个问题

在过去几年中,我越来越多地看到标题为“新功能即将登陆网页”的文章——然后是关于 Chrome 如何实现一项新的实验性功能的内容。“你很快就能使用它!”是他们的承诺。

现实情况要复杂一些。有时,Chrome 团队开创的想法会传播到其他浏览器,并成为我们都可以使用的工具。有时……它们会被搁置,因为没有其他浏览器决定实现它们。

很多时候,当出现后一种情况时,开发者就会抱怨那些“阻碍网页发展”的其他浏览器制造商。但这种看待问题的方式存在一个根本问题:Chrome 不是标准。Chrome 提出一些东西,甚至是一堆开发者喜欢它,但这并不构成标准。它也不强迫其他浏览器优先考虑它,甚至不强迫它们发布它。

我并非要把 Chrome 推向火坑。我是一个 Chrome 粉丝。我相信所有主要供应商都有类似的例子。我只是想提醒大家小心。网页是构建的最佳平台,它通常正在朝着一个让这一点更加真实的方向发展。最容易破坏这一点的方法是,在标准方面不够小心。