【发布时间】:2013-10-24 00:12:22
【问题描述】:
Chrome 曾经在其媒体查询中不正确地排除滚动条。这意味着对于 1000px 的可见空间和 17px 的滚动条,就媒体查询而言,其他浏览器会报告 1017px 作为宽度,但 webkit 浏览器(例如 Chrome 和 Safari)没有这样做。
这些浏览器可能会达到特定尺寸,滚动条会以一种分辨率出现,然后将分辨率更改为另一种出现的分辨率,然后它会返回到没有出现的情况......该解决方案导致了丑陋的空白空间出现在滚动条应该出现的位置,但它没有。它看起来像一个小故障,并且 DOM 调整大小事件没有正确触发,因此您无法在 JS 中正确响应。
但是,现在在 Chrome 29 中,这似乎已经改变。现在他们正在脱离规范的工作方式,并将滚动条包括在他们的媒体查询计算中……就像 Firefox 和 Internet Explorer(以及规范所说的它们应该一直都有的方式)。这修复了错误,但会导致另一个问题,即现在尝试检测 Chrome/Safari 问题的 JS 会出现误报,因为这与较新版本的 Chrome 无关,我认为最终 Opera 和 Safari 也是如此。
鉴于所有这些,我无法在任何地方找到任何关于何时在 Chrome 或 Webkit 中修复此问题的信息。我讨厌不得不在我的 JS 中使用浏览器版本测试来解决这些缺陷,但我目前只是盲目地猜测 Chrome 29+ 作为临时补丁,并且希望得到一个权威的答案......我已经在 Safari 6.0 中测试过.5,但是老方法还在用……
有人知道这是在哪个版本的 Chrome 和/或 Webkit 中修复的吗?
【问题讨论】:
标签: javascript css webkit