3

Chrome 过去常常在其媒体查询中不正确地排除滚动条。这意味着对于 1000px 的可见空间和 17px 的滚动条,就媒体查询而言,其他浏览器将报告 1017px 作为宽度,但 webkit 浏览器(例如 Chrome 和 Safari)没有这样做。

这些浏览器可能会达到特定大小,滚动条会以一种分辨率出现,然后将分辨率更改为另一种出现的分辨率,然后它会回到没有出现的位置......解决方案导致出现丑陋的空白滚动条应该在哪里,但它没有。它看起来像一个小故障,并且 DOM 调整大小事件没有正确触发,因此您无法在 JS 中正确响应。

然而,现在在 Chrome 29 中,这似乎已经改变。现在他们正在脱离规范的工作方式,并将滚动条包括在他们的媒体查询计算中......就像 Firefox 和 Internet Explorer(以及规范所说的它们应该一直拥有的方式)。这修复了错误,但会导致另一个问题,即 JS 现在尝试检测 Chrome/Safari 问题会出现误报,因为这与较新版本的 Chrome 无关,我认为最终 Opera 和 Safari 也是如此。

鉴于所有这些,我无法在任何地方找到任何关于何时在 Chrome 或 Webkit 中修复此问题的信息。我讨厌不得不在我的 JS 中使用浏览器版本测试来解决这些缺陷,但我目前只是盲目地猜测 Chrome 29+ 作为临时补丁,并且希望得到一个权威的答案......我已经在 Safari 6.0 中测试过.5,但仍在使用旧方法...

有人知道这是在哪个版本的 Chrome 和/或 Webkit 中修复的吗?

4

1 回答 1

2

从 Chrome v. 28 开始,Chrome 不再使用 webkit 引擎,它现在使用 Blink 渲染引擎。因此,除非您在以前的版本中需要它,否则无需为 chrome 检测它。

有关 Blink 的更多信息:Blink 文档

有关发布的更多信息:Webkit/Blink Switch 上的下一篇网络文章

于 2013-10-23T16:12:22.217 回答