๐ŸŒ html { font-size: 62.5%; } ๋ฅผ ์ ์šฉํ•˜์ž!

Boriยท2023๋…„ 4์›” 5์ผ
4

์–ด์จŒ๋“  ๊ณต๋ถ€

๋ชฉ๋ก ๋ณด๊ธฐ
14/41

font-size

  • ๋ธŒ๋ผ์šฐ์ €์˜ ํ‘œ์ค€ ๊ธ€๊ผด ํฌ๊ธฐ๋Š” 16px ์ž…๋‹ˆ๋‹ค.
    ์ฆ‰, ํŽ˜์ด์ง€์— ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธ€๊ผด ํฌ๊ธฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 16px๋กœ ๋ Œ๋”๋ง ๋ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž์™€ ์‚ฌ์šฉ์ž๋Š” ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    - ๊ฐœ๋ฐœ์ž๋Š” CSS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฃจํŠธ ์š”์†Œ(html)์˜ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    - ์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ € ์„ค์ •์„ ํ†ตํ•ด ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ์„ค์ •์ด CSS๋กœ ์ ์šฉ๋œ ์Šคํƒ€์ผ๋ณด๋‹ค ์šฐ์„ ์‹œ ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.
    - ๋งŒ์•ฝ ์‹œ๊ฐ ์žฅ์• ๊ฐ€ ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ํ…์ŠคํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์ฝ๊ธฐ ์œ„ํ•ด ํŽ˜์ด์ง€์˜ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    - ์ด๋•Œ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ px ๋‹จ์œ„๋กœ ์„ค์ •ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๊ธ€๊ผด ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ์„ค์ •๋œ px ํฌ๊ธฐ๋กœ ๋ Œ๋”๋ง ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ์กด์ค‘(Respect User Preferences)ํ•˜๋ ค๋ฉด px๊ฐ™์€ ์ ˆ๋Œ€ ๋‹จ์œ„๋ณด๋‹ค๋Š” %, em, rem๊ณผ ๊ฐ™์€ ์ƒ๋Œ€ ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

em

  • em์€ ํ•ด๋‹น ์š”์†Œ์˜ ๋ถ€๋ชจ ๊ธ€๊ผด ํฌ๊ธฐ์— ์ƒ๋Œ€์ ์ž…๋‹ˆ๋‹ค.
  • ๋ถ€๋ชจ ์š”์†Œ์˜ ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ 24px์ผ ๊ฒฝ์šฐ,
    - ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ 1em์ธ ์ž์‹์š”์†Œ๋Š” 24px์˜ ๊ณ„์‚ฐ๋œ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    - ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ 0.5em์ธ ์ž์‹์š”์†Œ๋Š” 12px๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
<div class="parent">
  <div class="child"></div>
</div>
.parent {
  /* I'm using pixels for illustrative purposes. */
  font-size: 24px;
}
.child {
  /* 0.5 * 24px = 12px */
  font-size: 0.5em;
}
  • ํ•œ ์š”์†Œ์— em ๋‹จ์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ , ํ•˜์œ„ ์š”์†Œ์—์„œ๋„ em ๋‹จ์œ„๋กœ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค๋ฉด ๋‘ ๊ฐ’์ด ๋ณตํ•ฉ์ ์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ์š”์†Œ๊ฐ€ ํŠธ๋ฆฌ์˜ ์‚ฝ์ž…๋œ ์œ„์น˜์— ๋”ฐ๋ผ ๊ธ€๊ผด์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ๋…๋ฆฝ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ em ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

<div class="parent">
  <div class="child">
    <div class="deeply-nested"></div>
  </div>
</div>
.parent {
  /* I'm using pixels for illustrative purposes. */
  font-size: 24px;
}
.child {
  /* 0.5 * 24px = 12px */
  font-size: 0.5em;
}
.deeply-nested {
  /* 0.5 * 0.5 * 24px = 6px */
  font-size: 0.5em;
}

rem

  • rem(โ€œroot emโ€)์€ ๋ฌธ์„œ์˜ ๋ฃจํŠธ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
  • rem์˜ ์žฅ์ ์€ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ํ•ญ์ƒ ์ž„์˜์˜ ์ƒ์œ„ ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ ์•„๋‹Œ ๋ฃจํŠธ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์ฒฉ ๋ ˆ์ด์•„์›ƒ ๋ฐ ๊ตฌ์„ฑ์š”์†Œ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ์„ค์ •์„ ํ†ตํ•ด ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ชจ๋“  rem ๊ธฐ๋ฐ˜ ํฌ๊ธฐ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์„ค์ •์— ๋”ฐ๋ผ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค.
.parent {
  /* 1.5 * 16px = 24px */
  font-size: 1.5rem;
}
.child {
  /* 0.5 * 16px = 8px */
  font-size: 0.5rem;
}
.deeply-nested {
  /* 0.5 * 16px = 8px */
  font-size: 0.5rem;
}

font-size: 62.5%;

  • px ๊ฐ’์„ rem ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฒˆ๊ฑฐ๋กœ์šด ๊ณ„์‚ฐ์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    - ์ง์ ‘ ๊ณ„์‚ฐํ•œ๋‹ค.
    - ์˜จ๋ผ์ธ ๋ณ€ํ™˜๊ธฐ๋ฅผ ์ด์šฉํ•œ๋‹ค.
    - pxToRem ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ ์šฉํ•œ๋‹ค.

๋ฃจํŠธ(HTML) ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ 62.5%๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฒˆ๊ฑฐ๋กœ์šด ๊ณ„์‚ฐ์—†์ด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

html {
  /* 62.5% of 16px browser font size is 10px */
  /* 16px * 0.625 = 10px */
  font-size: 62.5%;
}

body {
  /* 1.6 * 10px = 16px */
  font-size: 1.6rem;
}

.some-element {
  /* 1.2 * 10px = 12px */
  font-size: 1.2rem;
}
  • html์— font-size: 62.5%;๋ฅผ ์ ์šฉํ•˜๋ฉด ํŽ˜์ด์ง€์˜ ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ 10px๋กœ ์ž‘์•„์ง‘๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, body์— font-size: 1.6rem;๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋‹ค์‹œ ํŽ˜์ด์ง€์˜ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ 16px๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ๋žŒ์€ 10์ง„์ˆ˜๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ 10px๋กœ ์„ค์ •ํ•˜๋ฉด ์ƒ๋Œ€์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

  • ๋‚˜์˜ ๊ฒฝ์šฐ pxToRem ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ ์šฉํ–ˆ์—ˆ๋Š”๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ํŽ˜์ด์ง€ ์ƒ๋‹จ์— ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ import ํ•˜๊ณ , ๊ธ€๊ผด๋งˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•ด์„œ ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
  • ๋™๋ฃŒ ๊ฐœ๋ฐœ์ž๋Š” rem์„ ๋”ฐ๋กœ ๋ฉ”๋ชจํ•ด๋†“๊ณ  ์ ์šฉํ•˜๋‹ค๊ฐ€ ์ž์ฃผ ์ ์šฉํ•˜๋Š” px ๋‹จ์œ„์˜ rem ๊ฐ’์„ ์™ธ์šฐ๋Š” ๊ฒฝ์ง€์— ์ด๋ฅด๋ €์Šต๋‹ˆ๋‹ค.(pxToRem ํ•จ์ˆ˜ ์‚ฌ์šฉ ์ „)
  • ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—๋Š” ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ์›น ์ ‘๊ทผ์„ฑ์„ ๊ณ ๋ คํ•œ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋„ค์š” ์จ”์ž”!

์ฐธ๊ณ 

0๊ฐœ์˜ ๋Œ“๊ธ€