기타

CSS - em , rem , vw , vh , %

hojomu 2023. 4. 28. 11:18

CSS 작업을 할 때, 원리를 파악하지 못 하고 복붙해서 사용해왔다.

 

그래서 앞으로 em과 rem, vw와 vh, % 에 대해 정리해보려고 한다.

 

em, rem

 -> 상대 단위로, 고정되지 않고 특정 기준에 따라 유동적으로 바뀌는 수치를 지정할 수 있다.

em 과 rem은 둘 다 font-size를 기준으로 변화하는 단위이다.

 

차이점으로 rem은 최상위 요소인 html의 font-size를 기준으로 변화한다.

em은 해당 단위가 사용되고 있는 요소의 font-size를 기준으로 변화한다.

 

따라서 css를 작성할 때

 

rem은

// 최상위 요소에 font-size를 지정하고,
html{
	font-size: 10px;
}

// 원하는 요소에 rem을 사용하자
.class{
	width: 10rem;
}

 

em은 

// 최상위 요소가 아닌, 단위가 사용되고 있는 요소를 기준으로 하고싶을 때
.class{
	font-size: 15px;
    width: 10em;
}

형태로 사용하자.

 

 

vw , vh , %

 -> 상대 단위의 일종으로, em과 rem이 font-size를 기준으로 잡았다면,

vw , vh 는 화면 전체 넓이를 기준으로 하고, % 는 부모의 범위를 기준으로 잡는다.

 

.class{
	font-size: 50vw; -> 화면 전체 넓이의 50프로
}

font-size 도 vw , vh로 설정할 수 있으므로, em과 혼합해서 사용할 수 있다.