요약
px는 절대적인 단위로 고정적인 크기가 필요할 때 사용하는 단위이다.
em은 px와 다르게 상대적인 단위로 현재 요소의 font size를 em의 단위로 사용한다.
만약 현재 요소에 정해진 font size가 없다면 상위 요소의 font size를 사용한다.
rem은 em과 같이 상대적인 단위로 최상위 html 태그 요소의 font size를 rem의 단위로 사용한다.
만약 html에 font size를 설정하지 않는다면 1rem은 16px로 사용한다.
웹 디자인의 사이즈 단위
상대 단위
고정적인 크기값을 갖지 않고 특정 기준에 따라 유동적으로 변경되는 크기를 나타내는 단위
em, rem, %, vw, vh 등이 있음
절대 단위
어떤 상황에서든 고정적인 크기를 나타내는 단위
디바이스, 사용자 환경 등 여러 요인에 따라 유동적으로 크기가 바뀌는 웹 특성상 절대 단위를 사용하면 콘텐츠의 유연성이 저하될 수 있다.
px 등이 있음
px
고정적인 절대값 단위
- 어떤 환경이든 관계없이 px의 크기는 고정적이다.
- 브라우저에서는 전체적인 font size를 변경하는 기능이 존재한다. 하지만, 개발자가 특정 요소의 font size를 px로 설정해두면 브라우저에서 크기를 아무리 변경해도 적용되지 않는다.
em
현재 요소의 font size를 기준으로 브라우저 환경에서 px로 변환되는 상대 단위
div { font-size: 50px; width: 2em; //100px }
- 현재 요소의 font size를 1em 단위로 사용한다.
- 만약 현재 요소에 font size가 정해지지 않았다면 상위 요소의 font size를 기준으로 적용된다.
- 상위 요소의 영향을 받는 단위이기 때문에 상위 요소의 크기에 따라 유동적인 변환이 필요한 경우에 사용한다.
- 하지만 요소 중첩이 많은 경우에는 크기 계산이 어려워질 수 있기 때문에 주의해서 사용해야 한다.
rem
최상위 요소의 font size를 기준으로 브라우저 환경에서 px로 변환되는 상대 단위
html { font-size: 16px; } div { font-size: 8px; width: 2rem; // 32px }
- root em이란 뜻으로 html 태그 요소의 font size를 1rem 단위로 사용한다.
- 기본적으로 html font size는 16px이며 개발 환경에서 크기를 변경하면 모든 rem의 크기가 변경된다.
- 최상위 요소에 영향을 받는 단위이기 때문에 브라우저의 전체 글꼴 크기를 변경할 때 함께 변경되길 원할 때 사용한다.
ㅤ | px | em | rem |
단위 | 절대 | 상대 | 상대 |
브라우저 영향 | 없음 | 있음 | 있음 |
크기 변경 | 불가능 | 가능 | 가능 |
상위 요소 영향 | X | O | X(html 태그 제외) |
사용처 | 고정적인 크기가 필요한 경우
(border, shadow 등) | padding, margin 등 | font size 등 |