CSS

[CSS] 사이즈의 단위 rem

ITSkeleton 2020. 7. 29. 07:25
728x90
반응형

CSS에서 사용할 수 있는 단위들은 여러가지가 있는데요

 

rem, vh, vw, vmin, vmax, ex, ch중 이번 포스팅은 rem만을 알아봅시다.

 

rem

rem은 root em의 약자입니다.

먼저 rem을 알아보기전 em을 알아볼까요?

<body>
  <div class="remClass">remClass</div>
</body>

위와 같은 html을 만들었다고 가정해 봅시다.

body {
  font-size: 10px; 
} 
.remClass { 
  font-size: 1.5em;
}

그다음 CSS를 이렇게 만들었다고 가정한다면 어떤값이 em에 포함이 될까요?

 

계산을 해보면 다음과 같습니다.

 

body의 font-size인 10px * remClass의 font-size인 1.5

 

즉 10px * 1.5 = 15px이 적용되는 것이죠. 간단하게 설명을 해보았는데 생각해보면 간단합니다!

 

여기서 문제!

<body>
  <div class="remClass">
  	remClass1
    <div class="remClass">
      remClass2
      <div class="remClass">
        remClass3
      </div>
    </div>
  </div>
</body>

이렇게 적어준다면 어떻게 될까요?!

 

정답은 em은 부모의 값을 가져오는 것이기때문에

remClass1 의 font-size는 15px

remClass2 의 font-size는 15*1.5 = 22.5px;

remClass3 의 font-size는 22.5*1.5 = 33.75px;

이렇게 되어버리죠! 계속해서 커지는 겁니다.

 

그렇다면 저 값들을 계속해서 커지지않게 하는 방법은 무엇일까요

 

바로 최상위 바로 root의 font-size 만을 가져와서 em시켜준다면 자식을 아무리 만든다고해도

 

폰트 사이즈는 그대로겠지요?

body {
  font-size: 10px; 
} 
.remClass { 
  font-size: 1.5rem;
}

em을 rem으로 바꾸어 주었을 뿐인데, remClass1, remClass2, remClass3의 모든 폰트가 똑같아졌습니다!

728x90
반응형