2014-12-18 1 views
0

Modernizr을 사용하여 브라우저에서 뷰포트 단위가 지원되는지 여부를 감지하려고합니다.Portraitizi를 사용할 때 Modernizr.cssvhunit이 iOS7에서 작동하지 않는 이유는 무엇입니까?

여기 내 테스트입니다 :

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

내가 알고 뷰포트 단위 오전 iOS7에 지원되지 않습니다, 그래서 대체 필요한 곳이다.

iOS7에서 iPad의 가로 방향으로 페이지를로드하면 경고가 실행됩니다.

그러나 페이지를 세로 방향으로로드하면 경고가 표시되지 않습니다.

왜 가로로만 작동합니까? Modernizr과 관련된 알려진 버그입니까?

답변

0

답변이 없지만 대체 솔루션을 찾아 냈습니다.

cssvmaxunit에 대한 테스트를 추가했으며 조건은 세로 및 가로 모두에서 작동합니다. 브라우저가 다음 가능성이 vh를 지원하지 않습니다, vmax 지원하지 않는 경우

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

나는 그림.

0

iOS7에는 뷰포트 단위에 문제가있었습니다. 특히 뷰포트 높이가 있습니다. iOS7에있는

부분 지원은 "VH"부 (see workaround)의 버그에 의한 동작이다 는 CanIUse.com이 버 동작 나열.

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

는 iOS8의 뷰포트 단위 완벽하게 잘 지원하지만 그것에 대해 filed bug in modernizr있다. Modernizr은 iOS8 Safari는 vhunits를 지원하지 않는다고 말합니다. 그러나 지금 당장이 문제를 해결할 문제가있는 것 같습니다.

0

동일한 문제가 발생하여 좋은 해결책이있는 this article을 발견했습니다. Theres는이 괴괴 망측 한 중간 지원을 감지하고 html에 수업을하는 작은 스크립트입니다. Modernizr과 정확히 동일하게 작동합니다.

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

관련 문제