๋‹ด๊ณฐ๋†
minkyung.dev
๋‹ด๊ณฐ๋†
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (40)
    • ๐ŸŽ€ ํ”„๋กœ์ ํŠธ (6)
      • ์ธ์‚ฌ์ดํŠธ์•„์›ƒ (2)
      • ์บก์Šคํ†ค (2)
      • ์ž๋ฆฌ์–ด๋•Œ (1)
    • ๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ (22)
      • react (5)
      • nextjs (4)
      • typescript (3)
      • javascript (4)
      • html (4)
      • css (2)
    • ๐Ÿงฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (2)
      • leetcode (1)
      • programmers (0)
    • ๐Ÿง  CS (1)
    • ๐ŸŽ ํšŒ๊ณ  (2)
    • private (0)
    • ๐Ÿง‘‍๐ŸŽค์ด์ง (0)

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

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

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • javascript
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • leetcode
  • react-router
  • github
  • ์ธํ”„๋ŸฐX๋””ํ”„๋งŒ
  • vsCode
  • HTML
  • ESLint
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์ธํ”„๋Ÿฐ
  • Django
  • ๋””ํ”„๋งŒ
  • react

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๋‹ด๊ณฐ๋†

minkyung.dev

๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ/html

<main> / <section> vs <article>

2022. 7. 12. 20:37
728x90
๋ฐ˜์‘ํ˜•

<main>

  • ์ฃผ์š” ์ปจํ…์ธ ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค

๐Ÿ‘†์ฃผ์˜

  • mainํƒœ๊ทธ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์ค‘์‹ฌ์ด ๋˜๋Š” ๋‚ด์šฉ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•œ๋‹ค
  • <main>์„ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, DOM์—๋Š” main์ด ํ•˜๋‚˜์—ฌ์•ผํ•œ๋‹ค
    • ๋‚˜๋จธ์ง€๋Š” hidden ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค
  • ๊ตฌ์กฐ์ ์œผ๋กœ ์˜ณ์€ main ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค

 

โœŒ๏ธ๊ตฌ์กฐ์ ์œผ๋กœ ์˜ณ์€ main ์š”์†Œ๋ž€?

์กฐ์ƒ ์š”์†Œ๊ฐ€ html, body, div, ์ ‘๊ทผ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„์ด ์—†๋Š” form, autonomous custom ์š”์†Œ์œผ๋กœ ์ œํ•œ๋œ๋‹ค. 

๋”๋ณด๊ธฐ

A hierarchically correct main element is one whose ancestor elements are limited to html, body, div, form without an accessible name, and autonomous custom elements. Each main element must be a hierarchically correct main element.

https://html.spec.whatwg.org/#hierarchically-correct-main-element

 


<aside>

  • ์ฃผ์š” ๋‚ด์šฉ๊ณผ ๊ฐ„์ ‘์ ์œผ๋กœ ์—ฐ๊ด€๋œ ๋ถ€๋ถ„
  • ๋ณธ๋ฌธ ๋‚ด์šฉ์— ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค

 

ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ

  • ์‚ฌ์ด๋“œ๋ฐ”, ์ฝœ์•„์›ƒ
  • ์ฃผ์„, ์ฐธ์กฐ, ์ถœ์ฒ˜
  • ์šฉ์–ด ๋ชฉ๋ก
  • ๋งํฌ ๋ชจ์Œ

 

๐Ÿ‘†์ฃผ์˜

  • ๋ฌธ์„œ์˜ ์ฃผ์š” ๋‚ด์šฉ์— ํฌํ•จ๋˜๋ฉด ๊ด„ํ˜ธ์— ๋ฌถ์ธ ๊ธ€์ž์—ฌ๋„ aside๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค
  • <aside> ๋Š” ์‚ฌ์ด๋“œ๋ฐ”๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€๋งŒ ์‚ฌ์ด๋“œ์— ๋ฐฐ์น˜ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
    • ๋ฐฐ์น˜๊ฐ€ ๋ชฉ์ ์ด ์•„๋‹ˆ๋ผ ์ฝ˜ํ…์ธ ์˜ ๋‚ด์šฉ์ด ํ•ด๋‹น ํƒœ๊ทธ์™€ ์ ์ ˆํ•œ์ง€๊ฐ€ ์ค‘์š”ํ•˜๋‹ค

<section>

  • ๋ช…์‹œ์ ์ธ ์•„์›ƒ๋ผ์ธ์„ ๊ฐ€์ง„๋‹ค
๋ช…์‹œ์ ์ธ ์•„์›ƒ๋ผ์ธ์ด๋ž€?
html๋Š” ์›๋ž˜ ์•”๋ฌต์ ์ธ ์•„์›ƒ๋ผ์ธ๋งŒ ๊ฐ–๊ณ  ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ HTML5์˜ ์ฝ˜ํ…์ธ  ๋ชจ๋ธ์ด ์ƒ๊ธฐ๋ฉด์„œ ๋ช…์‹œ์ ์ธ ์•„์›ƒ๋ผ์ธ์ด ์ƒ๊ฒผ๋‹ค
  • ํ•ญ์ƒ ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์•ผํ•œ๋‹ค
  • ๋ฌธ์„œ์˜ ์•„์›ƒ๋ผ์ธ์— ์š”์†Œ์˜ ๋‚ด์šฉ๋“ค์ด ๋‚˜์—ด๋˜์•ผํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ section ์š”์†Œ๊ฐ€ ์ ์ ˆํ•˜๋‹ค

 

ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ

  • ๋ชฉ์ฐจ
  • ํƒญ ๋Œ€ํ™” ์ƒ์ž์˜ ๋‹ค์–‘ํ•œ ํƒญ ํŽ˜์ด์ง€
  • ํ™ˆํŽ˜์ด์ง€๋Š” ๋„์ž…, ๋‰ด์Šค ์•„์ดํ…œ, ์—ฐ๋ฝ ์ •๋ณด๋กœ ์„น์…˜์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค
  • numbered sections of a thesis

์ฃผ์˜

  • ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ, ๋ธ”๋กœ๊ทธ ๋Œ“๊ธ€, ์‹ ๋ฌธ ๊ธฐ์‚ฌ ๋“ฑ ๋…๋ฆฝํ˜• ์ปจํ…์ธ ๋Š” <article>์ด ๋” ์ ์ ˆํ•˜๋‹ค
  • ์ฃผ์š” ์ฝ˜ํ…์ธ ์™€ ๊ด€๋ จ์ด ์žˆ์ง€๋งŒ ์ง์ ‘์ ์ด์ง€ ์•Š๋Š” ๊ฒฝ์šฐ (๊ด€๋ จ ๋งํฌ , ์ž‘์„ฑ์ž ์•ฝ๋ ฅ ๋“ฑ)์€ <aside>๊ฐ€ ๋” ์ ์ ˆํ•˜๋‹ค
  • ๋ฌธ์„œ์˜ ์ฃผ์š” ์ฝ˜ํ…์ธ ๋Š” <main>์ด ์ ์ ˆํ•˜๋‹ค
  • ์Šคํƒ€์ผ๋ง ๋ชฉ์ (wrapper)์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” <div>๊ฐ€ ์ ์ ˆํ•˜๋‹ค

์ œ๋ชฉ์ด ์—†๋Š” ๊ฒฝ์šฐ

<section>์€ ์ œ๋ชฉ์„ ๊ฐ€์ ธ์•ผํ•˜์ง€๋งŒ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ œ๋ชฉ์ด ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค

 

1. ์ „์—ญ ํƒ์ƒ‰์ด <nav>์š”์†Œ๋กœ ๋ž˜ํ•‘๋œ ๊ฒฝ์šฐ ์ด์ „/๋‹ค์Œ ๋ฉ”๋‰ด

<section>
  <a href="#">Previous article</a>
  <a href="#">Next article</a>
</section>

 

2. ๋ฒ„ํŠผ

์ œ๋ชฉ์ด ๊ผญ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋ฌธ์„œ์˜ ์„น์…˜์— ํ•ด๋‹นํ•œ๋‹ค

<section>
  <button class="reply">Reply</button>
  <button class="reply-all">Reply to all</button>
  <button class="fwd">Forward</button>
  <button class="del">Delete</button>
</section>

 

ํ•˜์ง€๋งŒ ์ œ๋ชฉ์ด ์—†๋Š” ์„น์…˜์€ ๋ฌธ์„œ ๊ฐœ์š”์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ œ๋ชฉ์„ ํฌํ•จํ•˜๋Š”๊ฒŒ ๋” ์ข‹๋‹ค

๋Œ€์‹  hidden์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๋ชฉ์„ ์ˆจ๊ธด๋‹ค

<section>
  <h2 class="hidden">Controls</h2>
  <button class="reply">Reply</button>
  <button class="reply-all">Reply to all</button>
  <button class="fwd">Forward</button>
  <button class="del">Delete</button>
</section>

 

์ œ๋ชฉ์ด ๊ผญ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋Š” ์ด์œ 

1. ์Šคํฌ๋ฆฐ๋ฆฌ๋”

2. SEO


<article>

  • ๋ช…์‹œ์ ์ธ ์•„์›ƒ๋ผ์ธ์„ ๊ฐ€์ง„๋‹ค
  • ๋ฐ˜๋“œ์‹œ ์ œ๋ชฉ์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค

 

ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ

  • ํฌ๋Ÿผ ํฌ์ŠคํŠธ
  • ์žก์ง€ ๊ธฐ์‚ฌ
  • ๋‰ด์Šค ๊ธฐ์‚ฌ
  • ๋ธ”๋กœ๊ทธ ๊ธ€
  • ๋ธ”๋กœ๊ทธ ๋Œ“๊ธ€
  • ์œ„์ ฏ
  • ๋‚ด์šฉ๊ณผ ๋…๋ฆฝ์ ์ธ ์•„์ดํ…œ

์ฃผ์˜

  • article์ด ์ค‘์ฒฉ๋˜๋ฉด, ์•ˆ์— ์žˆ๋Š” article ์š”์†Œ๋Š” ๋ฐ–์— ์žˆ๋Š” article์˜ ๋‚ด์šฉ๊ณผ ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ“๊ธ€์„ ํ—ˆ์šฉํ•˜๋Š” ๋ธ”๋กœ๊ทธ ๊ธ€์—์€ ๋ธ”๋กœ๊ทธ ๊ธ€์ด๋ผ๋Š” article ์š”์†Œ ์•ˆ์— ๋Œ“๊ธ€์ด๋ผ๋Š” article ์š”์†Œ๊ฐ€ ์ค‘์ฒฉ๋œ ๊ฒƒ์ด๋‹ค

 

<article>๊ณผ <section>์„ ๊ฐ™์ด ์‚ฌ์šฉํ•œ ์ฝ”๋“œ ์˜ˆ์‹œ

<article class="film_review">
  <h2>Jurassic Park</h2>
  <section class="main_review">
    <h3>Review</h3>
    <p>Dinos were great!</p>
  </section>
  <section class="user_reviews">
    <h3>User reviews</h3>
    <article class="user_review">
      <h4>Too scary!</h4>
      <p>Way too scary for me.</p>
      <footer>
        <p>
          Posted on
          <time datetime="2015-05-16 19:00">May 16</time>
          by Lisa.
        </p>
      </footer>
    </article>
    <article class="user_review">
      <h4>Love the dinos!</h4>
      <p>I agree, dinos are my favorite.</p>
      <footer>
        <p>
          Posted on
          <time datetime="2015-05-17 19:00">May 17</time>
          by Tom.
        </p>
      </footer>
    </article>
  </section>
  <footer>
    <p>
      Posted on
      <time datetime="2015-05-15 19:00">May 15</time>
      by Staff.
    </p>
  </footer>
</article>

Jurassic Park ์˜ํ™”์— ๊ด€ํ•œ ๋ฆฌ๋ทฐ ํŽ˜์ด์ง€์ด๋‹ค

  1. section: ๋ฉ”์ธ ๋ฆฌ๋ทฐ
  2. section: ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐ๋“ค
    1. article: ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐ
      • ์ œ๋ชฉ + ๋‚ด์šฉ + ํ‘ธํ„ฐ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค
  3. footer

<section>๊ณผ <article> . . ๊ต‰์žฅํžˆ ๋น„์Šทํ•ด๋ณด์ธ๋‹ค

์–ธ์ œ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ? ๐Ÿค”

 

<section> vs <article>

<section>

  • ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ ๋‚˜ ๊ธฐ๋Šฅ๋“ค์˜ ๊ฐœ๋ณ„ ์„น์…˜์„ ๊ทธ๋ฃนํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ

<article>

  • ๊ฐœ๋ณ„ ๋…๋ฆฝํ˜• ์ฝ˜ํ…์ธ ๋ฅผ ํฌํ•จํ•œ๋‹ค
  • ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ, ๋น„๋””์˜ค, ์ด๋ฏธ์ง€, ๋‰ด์Šค ํ•ญ๋ชฉ

 

 

์œ„ ์˜ํ™” ๋ฆฌ๋ทฐ์— ์ ์šฉ์‹œ์ผœ๋ณด์ž

๋ฆฌ๋ทฐ๋“ค์„ ๊ทธ๋ฃนํ™”ํ•˜๊ธฐ ์œ„ํ•ด <section> ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค

๊ฐ๊ฐ์˜ ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐ์—๋Š” <article>์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค

 

 

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ‘ฉโ€๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ > html' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์›น ์ ‘๊ทผ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ฝ˜ํ…์ธ  ์ˆจ๊ธฐ๊ธฐ - sr-only / off-screen / a11yHidden  (0) 2022.07.12
HTML5์˜ ์ฝ˜ํ…์ธ  ๋ชจ๋ธ(Content Models)  (0) 2022.07.12
HTML ๊ธฐ๋ณธ ํ‹€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž - <!DOCTYPE> / <head> / <meta> / <title>  (0) 2022.07.11
    '๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ/html' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ์›น ์ ‘๊ทผ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ฝ˜ํ…์ธ  ์ˆจ๊ธฐ๊ธฐ - sr-only / off-screen / a11yHidden
    • HTML5์˜ ์ฝ˜ํ…์ธ  ๋ชจ๋ธ(Content Models)
    • HTML ๊ธฐ๋ณธ ํ‹€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž - <!DOCTYPE> / <head> / <meta> / <title>
    ๋‹ด๊ณฐ๋†
    ๋‹ด๊ณฐ๋†

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