【问题标题】:Chrome Media Query w/ Scrollbars Change带有滚动条更改的 Chrome 媒体查询
【发布时间】: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


    【解决方案1】:

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

    有关 Blink 的更多信息:Blink Documnetation

    有关发布的更多信息:Next Web Article on Webkit/Blink Switch

    【讨论】:

    • 是的,不幸的是,我确实需要检测旧版本,因为不是每个人都启用了自动更新等等。无论如何,至少我知道转换发生的时间。谢谢!
    猜你喜欢
    • 2012-08-05
    • 2014-06-04
    • 2011-12-30
    • 2013-08-19
    • 1970-01-01
    • 2012-01-01
    • 2013-05-31
    • 1970-01-01
    • 2016-05-27
    相关资源
    最近更新 更多