CSS 단위는 두가지로 나뉜다.
절대 길이 단위상대 길이 단위동일한 크기를 의미한다.인쇄물에서 많이 사용되는 방법이다.상속 된 다른 CSS로부터 영향을 받지 않는다.| px | 화면을 구성하는 기본이 되는 단위, 모니터의 1dot = 1pixel |
| in | 인치는 물리적 측정이지만 pixel에 직접 매칭됨 1in = 96px |
| cm | 1cm = 37.8px |
| mm | 1mm = 0.1cm = 3.78px |
| em | 글꼴을 상대적으로 표현하는 단위, 부모 요소가 갖고 있는 크기에 등배단위로 처리 ex) 2em => 2배 |
| rem | 글꼴을 root element(html태그) 기준으로 크기에 등배단위로 처리 |
| vw | 뷰포트 너비(width)의 1%로 처리 |
| vh | 뷰포트 높이(height)의 1%로 처리 |
| vmin | 현재 뷰포트 중(width와 height 중) 작은 쪽으로 선택해서 vw 혹은 vh 수치로 처리 |
| vmax | 현재 뷰포트 중(width와 height 중) 큰 쪽으로 선택해서 vw 혹은 vh 수치로 처리 |
em은 부모 크기를 기준으로 등배 단위가 처리되고, rem은 root(즉 html)를 기준으로 등배 단위가 처리됨ex)
<!DOCTYPE html>
<html>
<head>
<style>
* {
font-size: 10px;
}
.em {
font-size: 1em;
}
.em2 {
font-size: 2em;
}
.px30 {
font-size: 30px;
}
.rem {
font-size: 1rem;
}
</style>
</head>
<body>
<div>폰트 크기 10px 입니다.</div>
<div class="em">폰트 크기 1em 입니다.</div>
<div class="em2">폰트 크기 2em 입니다.</div>
<dib class="px30">
폰트 크기 30px 입니다.
<div class="em">부모 30px, 폰트 크기 1em 입니다.</div>
<div class="rem">부모 30px, 폰트 크기 1rem 입니다.</div>
</dib>
</body>
</html>

위와 같이 1em은 부모 폰트 크기와 같고, 1rem은 최상위 폰트 크기와 같다.
보여지는 영역, 보여지는 영역에서 얼마만큼 차지할 것인지 지정하는 단위500px 너비인 뷰포트일때 1vw는 뷰포트 너비의 1% 즉 5px이다.850px 너비인 뷰포트일때 1vw는 뷰포트 너비의 1% 즉 8.5px이다.

위와 같이 뷰포인트 가로 길이가 변할때 폰트의 크기가 달라진다.
https://baek.dev/post/38/
https://developer.mozilla.org/ko/docs/Learn/CSS/Building_blocks/Values_and_units
https://ossam5.tistory.com/310
https://nykim.work/85