๐Ÿ’ป Programming/HTML, CSS

[CSS] em, rem, %

2024. 1. 9. 16:38
๋ชฉ์ฐจ
  1. 1. ํฐํŠธ ํฌ๊ธฐ์—์„œ์˜ em, rem, %
  2. 1) px
  3. 2) em vs. rem
  4. 3) %
  5. 4) ์ •๋ฆฌ
  6. 2. ํฐํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์š”์†Œ์—์„œ์˜ em, rem, %

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์ด ๋œ๋‹ค.

 

 

 

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ’ป Programming > HTML, CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CSS] ๋ณ€ํ™˜๊ณผ ์ „ํ™˜ (Transformations & Transitions)  (0) 2024.01.10
[CSS] html, :root, * ์„ ํƒ์ž  (0) 2024.01.10
[HTML] ์›น ๋ฌธ์„œ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ: header, main, footer  (0) 2023.05.19
[CSS] BEM (Block-Element-Modifier)  (0) 2023.02.25
[CSS] CSS, ๊ทธ๋ฆฌ๊ณ  ์Šคํƒ€์ผ ์‹œํŠธ  (0) 2023.02.20
  1. 1. ํฐํŠธ ํฌ๊ธฐ์—์„œ์˜ em, rem, %
  2. 1) px
  3. 2) em vs. rem
  4. 3) %
  5. 4) ์ •๋ฆฌ
  6. 2. ํฐํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์š”์†Œ์—์„œ์˜ em, rem, %
'๐Ÿ’ป Programming/HTML, CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [CSS] ๋ณ€ํ™˜๊ณผ ์ „ํ™˜ (Transformations & Transitions)
  • [CSS] html, :root, * ์„ ํƒ์ž
  • [HTML] ์›น ๋ฌธ์„œ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ: header, main, footer
  • [CSS] BEM (Block-Element-Modifier)
Jiwon()
Jiwon()
Jiwon()
jiwondev.log
Jiwon()
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ์ „์ฒด๋ณด๊ธฐ (86)
    • โœ๏ธ What I Learned (52)
      • TIL (41)
      • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (8)
    • ๐Ÿ’ป Programming (31)
      • Algorithm (12)
      • React (1)
      • JS, TS (7)
      • HTML, CSS (7)
      • ๊ธฐํƒ€ (4)
    • ๐Ÿ–Š๏ธ ์ผ๊ธฐ (3)
      • ์ผ์ƒ๊ธฐ๋ก (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ๋ฆฌ์•กํŠธ
  • Next.js
  • ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„
  • javascript
  • slice
  • Prisma
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • Redux
  • Til
  • tailwindcss
  • ํ”„๋ก ํŠธ์—”๋“œ
  • recoil
  • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…
  • reduxtoolkit
  • ์›น๊ฐœ๋ฐœ
  • ์ฝ”๋”ฉ
  • nextjs
  • ํด๋ฆฐ์ฝ”๋“œ
  • transition
  • css
  • HTML
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ
  • React
  • SSR
  • Firebase
  • TypeScript
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • React-Hook-Form
  • ChatGPT
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
Jiwon()
[CSS] em, rem, %
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.