2. Style Basics

1. Basic: Class

μŠ€νƒ€μΌλ§κ³Ό CSS

index.html νŒŒμΌμ— κ°„λ‹¨νžˆ CSS μΆ”κ°€ν•˜λŠ” 방법

id μ„ νƒμž

#idλͺ… ν•˜λ‚˜λ§Œ 쑴재

<style>
    #greeting {
        color: #00F;
    }
</style>

class μ„ νƒμž

.classλͺ… μ—¬λŸ¬ μš”μ†Œμ— 쀑볡 μ‚¬μš© κ°€λŠ₯

<style>
    .greeting {
        color: #00F;
    }
</style>

className

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œμ˜ class μ˜ˆμ•½μ–΄μ™€ 겹치기 λ•Œλ¬Έμ— JSXμ—μ„œλŠ” β€œclassNameβ€μœΌλ‘œ λ³€κ²½λ˜μ–΄ μ§€μ •

CSS의 classλŠ” 일반적인 class와 λΉ„μŠ· μ–΄λ–€ νƒ€μž…, 속성, μΉ΄ν…Œκ³ λ¦¬μ— μ†ν•˜λŠ” μ§€λ₯Ό ν‘œν˜„

  • λΈŒλΌμš°μ €μ—μ„œλŠ” class둜 μžλ™ λ³€κ²½λ˜μ–΄ λ‚˜μ˜΄ <p class="greeting">Hello, world!</p>

단점

CSSλŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό μ „μ œλ‘œ ν•˜κ³  μžˆμ§€ μ•ŠμŒ κ·Έλž˜μ„œ κ³΅ν†΅λœ 뢀뢄이 λ§Žμ„ λ•Œ μž¬μ‚¬μš©ν•˜κΈ°λŠ” μ‰½μ§€λ§Œ, μ»΄ν¬λ„ŒνŠΈ μ€‘μ‹¬μœΌλ‘œ λΉ λ₯΄κ²Œ μž‘μ—…ν•˜λ €κ³  ν•˜λ©΄ λΆˆνŽΈν•  λ•Œκ°€ 많음 μž¬μ‚¬μš©μ€ κ·Έλƒ₯ μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•˜λ©΄ λ˜λŠ”λ°, κ·Έλ ‡κ²Œ ν•˜κΈ° μ–΄λ €μš΄ 것

β‡’ μ ˆμΆ©μ•ˆμœΌλ‘œ μ•„μ£Ό μž‘μ€ μŠ€νƒ€μΌ 그룹을 클래슀둜 μ§€μ •ν•˜λŠ” 방법도 쑴재 Ex. Bootstrap, Tailwind CSS λ“±μ˜ 접근법 - primary, default λ“±

CSS, JS ν”„λ ˆμž„μ›Œν¬ ν•˜λ‚˜μ˜ μ½”λ“œλ‘œ νœ΄λŒ€ν°, νƒœλΈ”λ¦Ώ, λ°μŠ€ν¬νƒ‘κΉŒμ§€ λ‹€μ–‘ν•œ κΈ°κΈ°μ—μ„œ μž‘λ™ν•˜κ²Œ λ§Œλ“€ 수 있으며, λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬ μ‚¬μš©μžκ°€ μ‰½κ²Œ μ›Ήμ‚¬μ΄νŠΈλ₯Ό μ œμž‘, μœ μ§€, λ³΄μˆ˜ν•  수 μžˆλ„λ‘ 도움

μ˜€ν”ˆ μ†ŒμŠ€ CSS ν”„λ ˆμž„μ›Œν¬ λΆ€νŠΈμŠ€νŠΈλž©κ³Ό 같은 λ‹€λ₯Έ CSS ν”„λ ˆμž„μ›Œν¬μ™€ 달리, λ²„νŠΌμ΄λ‚˜ ν…Œμ΄λΈ” λ“±μ˜ μš”μ†Œμ— λŒ€ν•΄ 미리 μ •μ˜λœ 일련의 클래슀λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠμŒ CSSλ₯Ό λ³„λ„λ‘œ μž‘μ„±ν•˜μ§€ μ•Šμ•„λ„, HTML νŒŒμΌμ—μ„œμ˜ λ§ˆν¬μ—… 만으둜 μ›ΉνŽ˜μ΄μ§€ ꡬ좕 κ°€λŠ₯ β‡’ utility-first 기법 (미리 κ΅¬ν˜„λœ CSS μ‚¬μš©)

2. Basic: Inline Style

β€œstyle” 속성 ν™œμš©

  • CSSλŠ” μ•„λ‹ˆκ³ , ν‰λ²”ν•œ JavaScript 객체λ₯Ό ν™œμš©ν•œ 것 β†’ λ³€μˆ˜, ν•¨μˆ˜ 등을 μž¬μ‚¬μš©ν•˜κΈ° 쉬움

  • ν…μŠ€νŠΈκ°€ μ•„λ‹ˆλΌμ„œ μ‹€μˆ˜ν•˜κ±°λ‚˜ λΆˆνŽΈν•  λ•Œκ°€ 있음 β†’ TypeScript의 힘으둜 μžλ™ μ™„μ„±, νƒ€μž… 검사 λ“±μ˜ 도움을 받을 수 있음

  • λΈŒλΌμš°μ €μ—μ„œλŠ” 인라인 μŠ€νƒ€μΌλ‘œ 적용됨 <p style="color: rgb(255, 0, 0);">Hello, world!</p>

λ°”λ‘œ μ‚¬μš©ν•˜λŠ” 방법

μžλ°”μŠ€ν¬λ¦½νŠΈ μž₯점 ν™œμš©

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” ν‘œν˜„μœΌλ‘œ μœ μ—°ν•˜κ²Œ μ“Έ 수 있음 μ½”λ“œ λ ˆλ²¨μ—μ„œ 적용 κ°€λŠ₯ μ—°μ‚° μž‘μ—…μ΄ λ“€μ–΄κ°€λ―€λ‘œ μ†λ„λŠ” 느렀짐

3. μ˜λ―ΈμžˆλŠ” λ§ˆν¬μ—…

πŸ™‹πŸ»β€β™€οΈοΈ 주의 사항

μ˜λ―ΈμžˆλŠ” λ§ˆν¬μ—…μ„ ν•˜κΈ° μœ„ν•΄μ„œλŠ” HTML Element 듀이 μ–΄λ–€ 의미λ₯Ό κ°€μ§€κ³  μžˆλŠ”μ§€ μ •ν™•ν•˜κ²Œ μ•Œκ³  μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 레퍼런슀λ₯Ό μ°Έκ³ ν•˜μ—¬ HTML λ§ˆν¬μ—…μ— λŒ€ν•΄ μ •ν™•ν•˜κ²Œ μ΄ν•΄ν•œ λ’€ μ •λ¦¬ν•˜κ³  λ„˜μ–΄κ°€μ‹œλ©΄ μ’‹μŠ΅λ‹ˆλ‹€.

πŸ’‘ μ°Έκ³  레퍼런슀 - MDN

className을 μ‚¬μš©ν•΄μ„œ μŠ€νƒ€μΌμ„ μ€˜λ„ λ˜μ§€λ§Œ, 인라인과 λ‹€λ₯Ό 것이 μ—†μ–΄μ§€κΈ° λ•Œλ¬Έμ—, μ˜λ―ΈμžˆλŠ” λ§ˆν¬μ—…μ„ μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŒ

Semantic tag

Semantic HTML Semantics - MDN

πŸ“ Semantic 의미의, 의미둠적인

μ‹œλ§¨ν‹± νƒœκ·ΈλŠ” 의미λ₯Ό λΆ€μ—¬ν•œ νƒœκ·Έ

Ex. <article> <aside> <details> <figure> <form> <footer> <header> <main> <mark> <nav> <section> <summary>

μž₯점

  1. HTML λ¬Έμ„œμ˜ 가독성과 μœ μ§€λ³΄μˆ˜κ°€ μ‰¬μ›Œμ§

  2. μ›Ή 접근성이 증가 - μ‹œμž‘ μž₯애인 도움을 μœ„ν•œ 슀크린 리더기 등이 νŽ˜μ΄μ§€λ₯Ό νƒμƒ‰ν•˜κΈ° μ‰¬μ›Œμ§

  3. 검색엔진이 검색을 μˆ˜ν–‰ν•  λ•Œ HTMLλ‚΄μ˜ νƒœκ·Έλ₯Ό 뢄석 κ°€λŠ₯(SEO 유용)

    • <article> νƒœκ·Έκ°€ μ‚¬μš©λœ μ½˜ν…μΈ λŠ” μž¬λ°°ν¬ν•  수 μžˆλŠ” μ½˜ν…μΈ λ‘œ 인식

    • <section> νƒœκ·Έλ‘œ 묢은 μ½˜ν…μΈ λŠ” 재배포λ₯Ό κΈˆμ§€ν•˜λŠ” μ½˜ν…μΈ λ‘œ 인식

✍️ 쑰각글

과제λ₯Ό ν•  λ•Œ <table> κ΄€λ ¨ μš”μ†Œλ₯Ό λͺ°λΌμ„œ ν—€λ§Έμ—ˆλ‹€. HTML μš”μ†Œμ— λŒ€ν•œ 체계적인 ν•™μŠ΅μ΄ ν•„μš”ν•˜λ‹€κ³  λŠκΌˆλ‹€. 코딩을 ν•˜λ©΄μ„œ κ·Έλ•Œ κ·Έλ•Œ MDN λ“± λ¬Έμ„œλ₯Ό 찾아보며 잘λͺ» μ•Œκ³ μžˆλŠ” λ‚΄μš©μ΄λ‚˜ λΆ€μ‘±ν•˜κ²Œ μ•Œλ˜ λ‚΄μš©μ„ ν•™μŠ΅ν•˜κ³  μžˆλ‹€. μ‹œλ§¨ν‹±ν•˜κ²Œ μž‘μ„±ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€κ³  μ•Œκ³  μžˆλŠ”λ°, 각 νƒœκ·Έμ˜ μ„ΈλΆ€ μš”μ†Œλ₯Ό 잘 μˆ™μ§€ν•˜κ³  μ‚¬μš©ν•˜λ„λ‘ ν•˜μž.

Last updated