2013-01-02 7 views
5

그래서 뷰포트 단위를 발견했으며 실제로 사용하고 싶습니다.가로 세로 비율을 유지하는 뷰포트 단위?

첫 번째 질문 : 요소의 기본 크기는 760x670 픽셀입니다. 뷰포트 단위를 사용하여 높이가 100vh이거나 너비가 100vw 중 작은 값이되도록 크기를 조정하고 싶습니다.

유감스럽게도 100vmin을 사용하여 두 가지 중 작은 것을 얻을 수는 있지만 폭 및 높이에만 적용 할 수 있습니다. 둘 다 사용할 수는 없습니다.

현재 내가 사용하고 있습니다 :

#root { 
    width: 760px; 
    height: 670px; 
    width: 100vw; 
    height: calc(670vw/760); 
} 

이 수직 스크롤의 결과로, 화면에 맞게 폭을 조절합니다. 너무 나쁘지는 않지만 실제로 뷰포트에 맞출 수 있으면 좋을 것입니다.

+0

Chrome에서 테스트 중입니다. 'vw' 단위는'calc' 내부에서 사용할 수 없습니다. 나는'height : -webkit-calc (100vw/3)'와 같은 것을 시도했다. 'calc'와 뷰포트 단위를 모두 지원하는 다른 브라우저는 IE10과 Safari 6 뿐이며 어느 것도 내 플랫폼 (Windows 7)에 설치할 수 없습니다. –

+1

Btw, 가로 세로 비율에 따라 코드를 분기 할 수 있으므로 미디어 쿼리에서 가능해야합니다. '@media all and (최소 종횡비 : 760/670) {...}'. –

+0

[WebKit 버그] (https://bugs.webkit.org/show_bug.cgi?id=94158)입니다. Chrome/Safari는 잊어 버리십시오. Firefox/Opera는 뷰포트 단위를 구현하지 않습니다. IE10은 코드를 이해하는 유일한 브라우저 인 것으로 보입니다. ':)' –

답변

8

나는 IE10에서 작동했습니다 :

#elem { 
    width: 100vw; 
    height: calc((9/16)*100vw); 
} 

@media (min-aspect-ratio:16/9) { 
    #elem { 
     height: 100vh; 
     width: calc((16/9)*100vh); 
    } 
} 

라이브 데모 : 윈도우 7)에 해당하는 IE10 (미리보기 버전 공개 http://jsfiddle.net/C2ZGR/show/ (다음, 다시 크기 창, 그래서 하나 폭 또는 높이가 매우 작음)

가로 세로 비율이 16 : 9 인 요소를 사용했지만 어떤 가로 세로 비율에서도 사용할 수 있습니다. 16/99/16을 원하는 가로 세로 비율로 바꿉니다.

Btw, IE10은이 데모가 작동하는 유일한 브라우저입니다. Firefox/Opera는 아직 뷰포트 단위를 구현하지 않으며 WebKit 브라우저에는 현재 calc() 내부의 뷰포트 단위를 사용할 수없는 버그가 있습니다.

+0

아주 좋습니다. 고맙습니다. –

+0

이것은 Chrome에서 작동하는 것으로 보입니다. – BlueMonkMN

관련 문제