2. Style Basics

Keyword

  • className

  • ์˜๋ฏธ์žˆ๋Š” ๋งˆํฌ์—…


1. className

์Šคํƒ€์ผ์„ ์„ค์ •ํ•  ๋•Œ className์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” JSX๋Š” babel์— ์˜ํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— class๋Š” ์˜ˆ์•ฝ์–ด๋กœ ์ธ์‹ํ•˜์—ฌ JSX๋Š” HTML์˜ class๊ฐ€ ์•„๋‹Œ className์„ ์‚ฌ์šฉํ•œ๋‹ค. ์Šคํƒ€์ผ ์„ค์ • ์‹œ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

๊ฐ์ฒด์˜ ํ‚ค, ๋ฒจ๋ฅ˜๋ฅผ ์ด์šฉํ•œ ํด๋ž˜์Šค ๋ฌธ์ž์—ด ์‚ฌ์šฉํ•˜๊ธฐ

function classNames(classes) {
  return Object.entries(classes)
    .filter(([key, value]) => value)
    .map(([key, value]) => key)
    .join(' ');
}

const classes = {
  'maybeClass': true,
  'otherClass': true,
  'probablyNotClass': false,
};

const myClassNames = classNames(classes);
// Output: "maybeClass otherClass"

<li className={myClassNames} />

myClassNames ๋ณ€์ˆ˜์— classes ๊ฐ์ฒด์—์„œ true๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค ์ด๋ฆ„์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด๋กœ ์ €์žฅ๋œ๋‹ค.


2. ์˜๋ฏธ์žˆ๋Š” ๋งˆํฌ์—… (Semantic Markup)

์ •์˜

์‹œ๋งจํ‹ฑ ๋งˆํฌ์—…์ด๋ž€ ์ปจํ…์ธ ์˜ ์˜๋ฏธ๋ฅผ ์ž˜ ์ „๋‹ฌํ•˜๋„๋ก HTML ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋Š” ๊ฐ๊ฐ ์˜๋ฏธ๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— HTML ๋ฌธ์„œ ๊ตฌ์กฐ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹œ๋งจํ‹ฑ ๋งˆํฌ์—…์˜ ํ•„์š”์„ฑ

  • HTML ๋ฌธ์„œ์˜ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ๊ณผ ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๋‹ค.

    • header, nav, footer๋“ฑ ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ์ž‘์—…์ž๊ฐ€ ๋ฌธ์„œ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์ˆ˜์›”ํ•ด์ง„๋‹ค.

  • ์›น ์ ‘๊ทผ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

    • ์‹œ๋งจํ‹ฑ ๋งˆํฌ์—…์€ ์‹œ๊ฐ ์žฅ์• ์ธ์„ ์œ„ํ•œ ๋ธŒ๋ผ์šฐ์ € ์ปจํ…์ธ ๋ฅผ ์Œ์„ฑ์œผ๋กœ ์•ˆ๋‚ดํ•ด์ฃผ๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ํ†ตํ•ด ํ™œ์šฉ๋œ๋‹ค.

  • ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO)

    • ์‹œ๋งจํ‹ฑ ๋งˆํฌ์—…์€ ๊ฒ€์ƒ‰ ์—”์ง„์ด ํŽ˜์ด์ง€์˜ ์ปจํ…์ธ ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ๊ฒ€์ƒ‰ ์ˆœ์œ„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

Last updated