em
부모 요소의 폰트 사이즈에 곱한 값이다.rem
HTML의 폰트 사이즈에 곱한 값이다.
- font-size에 따라 변경되어야 할 때
em
,rem
을 사용
1) parent(부모)에 따라 요소의 사이즈가 변경되어야 하면em
,%
단위를 사용한다.
2) 부모와 상관없이 browser(브라우저) 사이즈에 따라 요소의 사이즈가
변경 되어야 할 땐rem
,viewport
를 사용한다.
- 그 외에 Contents 박스의 너비와 높이를 결정할 땐
viewport
,%
를 사용하면 좋다.
컴포넌트가 어디에서 사용되냐에 따라서 즉, 부모의 사이즈에 따라 변경되어야 한다면 em
을 권장한다.
padding
은 font-size에 따라 변경이 되어야하기 때문에 em
을 권장한다.
컴포넌트가 페이지 어디에 있어도 크기가 변하면 안된다면 rem
사용을 권장한다.
font-size를 결정할 때 rem
을 권장한다.
복잡한 구조에서 em
을 많이 사용하면 font-size 계산이 매우 어려워질 수 있음.
MediaQuery
의 사이즈를 정할 때에도 rem
을 사용하면 화면의 변화가 깔끔하게 적용된다.
padding
을 줄 때 em
사용하면 부모 요소에 따라 크기가 변하게 된다. 이 때 부모 자식또는 요소와 요소간에 font-size가 다를 경우 깔끔하게 정렬되지 않을 수 있다.예를 들어
header
와h1
에 동일한padding
값을em
으로 작성했다. 그리고header
의 font-size를h1
보다 크게 주었을 때padding
값이 다르게 적용되어 두 요소의 정렬이 맞지 않게 되는데
이 때 수직 정렬을 한다면 상하는em
으로, 좌우는rem
으로 주면 된다.