단위 정리 (vh/vw/calc)

2017년 7월 26일

px, em, rem을 넘어서서 요새 많이 쓰이는 단위를 정리해보겠습니다.

사용함에 있어서 굉장히 편히라고 게다가 IE9부터 지원을 하기 때문에 앞으로의 쓰임이 더욱 기대되는 단위라고 합니다!

1. vw, vh

ex) width:100vw; height:100vh;

width에는 vw를 hright에는 vh를 사용합니다. 이 부분은 반응형웹과 같은 곳에서 쓰일수록 더욱 편리함이 높아집니다.

이 단위는 요소의 뷰포트값의 100분의 1을 하는 값을 뜻합니다. 즉 값에 해당하는 숫자는 1부터 100이 됩니다. (1vh -100vh)

가령 브라우저의 전체 넓이가 1000px이 된다면 1vh는 10px가 되는 것을 뜻합니다.

위 단위를 사용하는 사례로는,

브라우저의 전체화면에 풀 이미지를 넣어야하는 경우 height: 100%; 를 쓰지 않고, height: 100vh; 를 사용하는것입니다.

퍼센테이지 값이 아닌, 좀더 명확한 단위를 씀으로써 편리하면서도 가변적으로 변할 수 있는 전체화면을 만들었습니다.

다만 이 단위를 쓰는 경우, IE의 하위 브라우저는 지우너이 가능하지 않다는 점을 알아두어야합니다.

2. calc()

ex) width:calc(100%-2rem); width:calc(100%/4);

이 단위야 말로 우리가 늘 고민해왔던, 값을 연산하면 좋을텐데… 하는 생각을 그대로 반영한 단위인 듯 합니다.

가령 똑같이 나눠야하는 가로 사이즈 라던지, 양옆의 여백만 없앤 전체값이라던지.

이러한 고민을 px을 굳이 알지 않아도 편리하게 반영할 수 있습니다. 중첩에 중첩을 해서 다양한 연산도 가능해보이지만,

현재 중첩 연산까지는 지원하는 브라우저가 극소수 인지라, 가볍게 쓰는걸 추천합니다.

위 단위도 IE는 9부터 지원이가능하고 밴더프리픽스를 같이 써줘야 다양한 브라우저의 하위버전에 반영이 되는 것

이 두가지 단위를 쓰실 때는 fallback (대체 스타일시트)을 같이 써줘서

해당 단위가 반영되지 않는 하위브라우저에서도 반영이 될 수 있게 해주는게 좋은 방법!

ex) .test {width:100%; width100vw;}