css

CSS - em, rem - 상대 단위

carrotweb 2022. 5. 8. 20:07
728x90
반응형

em

 

em이란 HTML 요소(element)의 폰트 크기(font-size) 속성 값에 비례해서 결정되는 상대 단위입니다.
HTML 요소(element)는 쉽게 HTML를 구성하는 태그(tag)라고 생각하시면 됩니다.
HTML 요소(element)의 폰트 크기(font-size) 속성은 부모로부터 상속받을 수 있습니다.

1em은 HTML 요소(element)의 폰트 크기(font-size) 속성 값과 같습니다.
그래서 HTML 요소(element)의 폰트 크기(font-size) 속성 값이 16px이면 1em은 16px이 됩니다.
(1em = 16px)

 

<style>
.container { font-size: 16px; margin: 10px 10px; }
.box { border: 1px solid black; width: 100px; display: inline-block; vertical-align: top; }
.h1 { height: 0.5em; }
.h2 { height: 1em; }
.h3 { height: 1.5em; }
.h4 { height: 2em; }
.h5 { height: 3em; }
</style>
<div class="container">
	<div class="box h1"></div>
	<div class="box h2"></div>
	<div class="box h3"></div>
	<div class="box h4"></div>
	<div class="box h5"></div>
</div>

 

1em이 HTML 요소(element)의 폰트 크기(font-size) 속성 값과 같다고 했는데 그럼 container의 폰트 크기(font-size) 속성 값이 16px이 아닌 24px이면 어떻게 될까요?

<style>
.container { font-size: 24px; margin: 10px 10px; }
.box { border: 1px solid black; width: 100px; display: inline-block; vertical-align: top; }
.h1 { height: 0.5em; }
.h2 { height: 1em; }
.h3 { height: 1.5em; }
.h4 { height: 2em; }
.h5 { height: 3em; }
</style>
<div class="container">
	<div class="box h1"></div>
	<div class="box h2"></div>
	<div class="box h3"></div>
	<div class="box h4"></div>
	<div class="box h5"></div>
</div>

폰트 크기(font-size) 속성 값이 24px임으로 1em은 24px이 됩니다. (1em = 24px)

 

이처럼 HTML 요소(element)의 폰트 크기(font-size) 속성 값에 비례해서 결정되는 em를 사용하실 때 고려해야 합니다.

 

 

 

rem

 

rem이란 HTML 최상위(root) 요소(element)의 폰트 크기(font-size) 속성 값에 비례해서 결정되는 상대 단위입니다.
HTML 최상위(root) 요소(element)는 쉽게 HTML에서 <html> 태그(tag)라고 생각하시면 됩니다.
기본적으로 <html> 태그(tag)의 폰트 크기(font-size) 속성 값은 16px입니다.

<style>
html { font-size: 16px; }
.container { font-size: 24px; margin: 120px 10px; }
.box { border: 1px solid black; width: 100px; display: inline-block; vertical-align: top; }
.h1 { height: 0.5em; }
.h2 { height: 1em; }
.h3 { height: 1.5em; }
.h4 { height: 2em; }
.h5 { height: 3em; }
.rh1 { height: 0.5rem; }
.rh2 { height: 1rem; }
.rh3 { height: 1.5rem; }
.rh4 { height: 2rem; }
.rh5 { height: 3rem; }
</style>
<div class="container">
	<div class="box h1"></div>
	<div class="box h2"></div>
	<div class="box h3"></div>
	<div class="box h4"></div>
	<div class="box h5"></div>
</div>
<div class="container">
	<div class="box rh1"></div>
	<div class="box rh2"></div>
	<div class="box rh3"></div>
	<div class="box rh4"></div>
	<div class="box rh5"></div>
</div>

 

rem을 사용하면 자신 요소(element)의 폰트 크기(font-size) 속성 값이 아닌 최상위(root) 요소(element)의 폰트 크기(font-size) 속성 값에 비례해서 px가 변환되는 것을 확인할 수 있습니다.

 

 

px(픽셀), em, pt(포인트) 변환

 

아래 표는 HTML 요소(element)의 폰트 크기(font-size) 속성 값이 16px(12pt) 일 경우입니다.
폰트 크기(font-size) 속성 값을 pt(포인트)로 사용할 경우를 위해 아래 표에 pt(포인트)도 추가하였습니다.

px(pixel)
em
pt(point)
8px
0.5em
6pt
11px
0.7em
8pt
13px
0.8em
10pt
16px
1em
12pt
19px
1.2em
14pt
22px
1.4em
16pt
32px
2em
24pt
48px
3em
36pt

 

 

728x90
반응형