0

我正在尝试使用 Modernizr 来检测浏览器是否支持视口单元。

这是我的测试:

if(!Modernizr.cssvhunit) {
    alert('viewport units are not supported');
}

我知道 iOS7 不支持视口单元,所以这是我需要后备的地方。

当我在 iPad 上横向加载 iOS7 中的页面时,会执行警报。

但是,如果我以纵向加载页面,我看不到警报。

为什么这种情况只适用于景观?这是 Modernizr 的已知错误吗?

4

3 回答 3

0

iOS7 had problems with viewport units. Especially with viewport height. CanIUse.com also lists this buggy behaviour:

partial support in iOS7 is due to buggy behavior of the "vh" unit (see workaround).

http://caniuse.com/#search=viewport%20units

iOS8 supports viewport units perfectly fine but there is a filed bug in modernizr about it. Modernizr says iOS8 Safari does not support vhunits even though it does. But it seems there are problems to fix this right now.

于 2015-03-04T10:16:15.500 回答
0

我没有答案,但我确实找到了替代解决方案。

我为 cssvmaxunit 添加了一个测试,并且该条件适用于纵向和横向。

// if viewport units aren't supported
if(!Modernizr.cssvhunit || !Modernizr.cssvmaxunit) {
    alert('viewport units are not supported');
}

我想如果浏览器不支持vmax,那么它可能不支持vh

于 2014-12-18T22:02:00.773 回答
0

我自己也有同样的问题,设法找到了这篇有很好解决方案的文章。有一个小脚本可以检测到这种奇怪的中间支持并在 html 上放置一个类。与 Modernizr 完全相同

https://github.com/vasilisvg/crazy-vh-test/

于 2016-10-11T12:38:38.563 回答