px, em, rem

px는 값이 고정되어있는 절대값의 단위이고, em과 rem은 환경에 따라 변하는 상대단위이다.

https://velog.io/@codns1223/CSS-px-em-rem-%EC%B0%A8%EC%9D%B4

➡️ rem

별도의 font-size를 설정하지 않았을 경우에는 각 브라우저에서 기본적으로 설정된 값을 상속 받는다. (일반적으로 16px)

html {
  font-size: 16px;
}

div {
  font-size: 20px;
  width: 10rem; /* 160px */
}

💡 넓이(width)와 높이(height) 속성의 값은?

<style>
  .container {
    font-size: 14px;
  }

  .container.title {
    font-size: 2rem; // 28px
  }

  .container.subtitle {
    font-size: 1.5rem; // 21px
  }

  .container.subtitle.leading {
    font-size: 0.5rem; // 7px
    width: 0.3rem;
    height: 0.4rem;
  }
</style>  

<body>
  <div class="container">
    <div class="title"></div>
    <div class="subtitle"></div>
  </div>  
</body>

width는 14×0.3 = 4.2px
height은 14×0.4 = 5.6px

결론

많은 CSS 가이드들이 em을 사용해야만 하는 타당한 이유가 없는 경우라면 가급적 rem을 우선적으로 쓰도록 권고하고 있다. 왜냐하면 em의 경우 위에서 보았듯이 실제 몇 px로 변환될지에 영향을 주는 변수가 많아지기 때문에 em을 사용해서 스타일된 요소의 경우 재사용이 어렵고 유지보수가 힘들어지는 경향이 있기 때문이다.
하지만 rem과 em도 용도에 맞게 적절히 혼용해서 사용할 수 있다. 예를 들어 어느 페이지에서든 고정된 사이즈를 사용해야 한다면 rem을, 부모 요소에 따라 유동적으로 변해야 하는 곳에는 em을 사용하면 된다. 그래서 보통 font-size에는 rem을 사용하고 padding이나 margin같이 화면에 따라 유연하게 변하는 크기는 em을 사용한다.

댓글 남기기