Jiwon() 2024. 1. 9. 16:38

1. ํฐํŠธ ํฌ๊ธฐ์—์„œ์˜ em, rem, %

1) px

  • ์žฅ์ : Easy to understand & translateable
  • ๋‹จ์ : Limited user focus & not scalable

 

2) em vs. rem

(1) em (element)

  • Size is relative to font-size
    • ๋‹ค๋ฅธ ์š”์†Œ์˜ ํฐํŠธ ํฌ๊ธฐ์™€ ์—ฐ๊ด€๋œ ํฌ๊ธฐ - ํฐํŠธ ํฌ๊ธฐ๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ ํฌ๊ธฐ์— ๋‹ฌ๋ ค์žˆ๋‹ค.
  • ๋‹จ์ 
    • %์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ถ€๋ชจ ์š”์†Œ์—์„œ ์ƒ์†๋ฐ›๋Š” ํฌ๊ธฐ์— ๋”ฐ๋ผ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต๋‹ค.

(2) rem (root em)

  • Size is relative to root element’s font size
    • ํ˜„์žฌ ์š”์†Œ์˜ ํฐํŠธ ํฌ๊ธฐ์™€ ์ตœ์ƒ์œ„ ์š”์†Œ์˜ ํฐํŠธ ํฌ๊ธฐ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
    • HTML์—์„œ ์ตœ์ƒ์œ„ ์š”์†Œ: <html>
  • ์ตœ์ƒ์œ„ ์š”์†Œ์— ํฐํŠธ ํฌ๊ธฐ๋ฅผ ๋”ฐ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ํฌ๊ธฐ๋Š” ํ•ญ์ƒ ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ์„ค์ •๋˜์–ด ์žˆ๋Š”๋Œ€๋กœ ์ •ํ•ด์ง„๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ € ์„ค์ • - Font size

 

3) %

  • Relative to parent element size
    • ํ˜„์žฌ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ์š”์†Œ์˜ ๋ถ€๋ชจ ์š”์†Œ์˜ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ ์šฉ
  • ๋‹จ์ 
    • ๋ถ€๋ชจ ์š”์†Œ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ฅด๋Š” ์ข…์†์ ์ธ ์„ฑ์งˆ์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ์œ ๋‹›์ด ๋งŽ์•„์ง€๊ณ  ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์›น ํŽ˜์ด์ง€์—์„œ๋Š” ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. (Hard to manage due to cascading nature)

 

4) ์ •๋ฆฌ

  • em๊ณผ %๋Š” ํฐํŠธ ํฌ๊ธฐ์—์„œ๋Š” ๋น„์Šทํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•œ๋‹ค.
  • rem ๋‹จ์œ„๋กœ๋Š” ํฐํŠธ ํฌ๊ธฐ๋ฅผ ํ•ญ์ƒ ์ตœ์ƒ์œ„ ์š”์†Œ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ตœ์ƒ์œ„ ์š”์†Œ์— ๋”ฐ๋กœ ์ง€์ •๋œ ํฐํŠธ ํฌ๊ธฐ๊ฐ€ ์—†๋‹ค๋ฉด html ์—˜๋ฆฌ๋ฉ˜ํŠธ์— ์„ค์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์€ ์ถ”์ฒœํ•˜์ง€ ์•Š์Œ
    • html ์š”์†Œ์— ์ ์šฉ๋œ ์„ค์ •์ด ์—†์œผ๋ฉด rem ๋‹จ์œ„๋กœ ํฐํŠธ ํฌ๊ธฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Œ
  • ํ•˜์ง€๋งŒ rem์ด ์ •๋‹ต์ธ ๊ฒƒ๋งŒ์€ ์•„๋‹ˆ๋‹ค. ๋‹จ์œ„ ์„ค์ •์€ ๊ฐœ์ธ ์„ ํ˜ธ๋‚˜ ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

 

 


2. ํฐํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์š”์†Œ์—์„œ์˜ em, rem, %

  • % ๋‹จ์œ„ ์‚ฌ์šฉ ์‹œ ๋ถ€๋ชจ ์š”์†Œ์˜ ๋„ˆ๋น„๋ฅผ ์ฐธ์กฐ
  • em๊ณผ rem์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ํ•˜์œ„ ์š”์†Œ์— ์ ์šฉ๋˜๋”๋ผ๋„ ์‹ค์ œ๋กœ ์ ์šฉ๋˜๋Š” ํฐํŠธ ํฌ๊ธฐ ์†์„ฑ์„ ์ฐธ์กฐ
    • ์˜ˆ์‹œ - padding
      • em ๋‹จ์œ„๋Š” ํ•ด๋‹น ์š”์†Œ ์ž์ฒด์˜ ํฐํŠธ ํฌ๊ธฐ๋ฅผ ์ฐธ์กฐ
      • rem ๋‹จ์œ„๋Š” ์ตœ์ƒ์œ„ ์š”์†Œ์˜ ํฐํŠธ ํฌ๊ธฐ๋ฅผ ์ฐธ์กฐ
em ์˜ˆ์‹œ

.food-item-content {
  font-size: 200%;
  /* padding: 16px; */
  /* padding: 10%; */
  padding: 0.1em;
  text-align: center;
}

์˜ˆ๋ฅผ ๋“ค์–ด ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ํฐํŠธ ํฌ๊ธฐ๊ฐ€ 22px๋ผ๋ฉด,
food-item-content ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง„ div์—์„œ ํฐํŠธ ํฌ๊ธฐ๋Š” font-size: 200%์œผ๋กœ ์ธํ•ด 44px๊ฐ€ ๋˜๋ฏ€๋กœ,
<div class="food-item-content">์˜ padding๊ฐ’์€ 44px์˜ 0.1๋ฐฐ์ธ 4.4px์ด ๋œ๋‹ค.
rem ์˜ˆ์‹œ

.food-item-content {
  font-size: 200%;
  /* padding: 16px; */
  /* padding: 10%; */
  padding: 0.1rem;
  text-align: center;
}

์˜ˆ๋ฅผ ๋“ค์–ด ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ํฐํŠธ ํฌ๊ธฐ๊ฐ€ 22px๋ผ๋ฉด,
html ์š”์†Œ์— ์•„๋ฌด๋Ÿฐ font-size ์„ค์ •์ด ์—†๋Š” ๊ฒฝ์šฐ ์ตœ์ƒ์œ„ html ์š”์†Œ์˜ ํฐํŠธ ํฌ๊ธฐ๋„ 22px์ด๋ฏ€๋กœ
<div class="food-item-content">์˜ padding๊ฐ’์€ 22px์˜ 0.1๋ฐฐ์ธ 2.2px์ด ๋œ๋‹ค.