λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

HTML

[HTML] HTML κ°œμš”

🌏 μ›Ή ν‘œμ€€ (Web Standards)

λΈŒλΌμš°μ €λ§ˆλ‹€ ν•΄μ„ν•˜λŠ” 방식에 차이가 μžˆλ‹€. ➞ 같은 κΈ°λŠ₯으둜 λ™μž‘ν•˜λ„λ‘ ν‘œμ€€ 지정(W3C)

  • ν‘œμ€€ν™” 이전에 λ…μžμ μΈ ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜κΈ°λ„ ν–ˆμœΌλ―€λ‘œ μ„ νƒμ˜ 폭이 맀우 μ’μ•˜μ—ˆλ‹€.
  • λΈŒλΌμš°μ €λ§ˆλ‹€ μŠ€νƒ€μΌμ΄ λ‹€λ₯Ό μˆ˜λŠ” μžˆλ‹€.(같은 κΈ°λŠ₯을 함)
  • HTML5 - 2014년에 곡식 ν‘œμ€€ν™”λ¨.

🌏 μ›Ή μ ‘κ·Όμ„± (Web Accessibility)

μΌμ‹œμ μœΌλ‘œλ‚˜ μ–΄λ–€ μƒν™©μ—μ„œλ“  μ›Ήμ‚¬μ΄νŠΈλ₯Ό μ΄μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것.(λ§ˆμš°μŠ€νƒ€μžνŒ, μŒμ„±μΈμ‹ λ“±)

  • 일반적인 λΈŒλΌμš°μ €λ₯Ό μ΄μš©ν•˜κΈ° μ–΄λ €μš΄ 경우 λΈŒλΌμš°μ§•μ„ ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 역할을 ν•˜κ²Œ 됨.

🌏 μ›Ή ν˜Έν™˜μ„±(Cross Browsing)

μ›ΉλΈŒλΌμš°μ €μ— 상관없이 μ˜λ„ν•œλŒ€λ‘œ κΈ°λŠ₯ λ™μž‘ν•˜λŠ” 것.(ν¬λ‘œμŠ€λΈŒλΌμš°μ§•)

  • λΈŒλΌμš°μ €μ— 따라 λ‹€λ₯Έ κΈ°λŠ₯을 ν•  μˆ˜λ„ 있음.(ν•˜μ§€λ§Œ ν‘œμ€€ν™”λ˜λ©΄μ„œ λŒ€λΆ€λΆ„ 같은 κΈ°λŠ₯을 함)
  • μ–΄λ–€ λΈŒλΌμš°μ €λ₯Ό μ΄μš©ν•˜λ”λΌλ„ μ˜λ„λœ λ™μž‘μ„ μˆ˜ν–‰ν•˜λ„λ‘ 함.

 

πŸ“š HTML(Hyper Text Markup Language)

HTML은 ν•˜μ΄νΌν…μŠ€νŠΈ λ§ˆν¬μ—… μ–Έμ–΄ (λΈŒλΌμš°μ €λ‘œ 보여쀀닀)

  • ν•˜μ΄νΌ ν…μŠ€νŠΈ: μ΄λ™ν•˜κΈ° μœ„ν•œ μš”μ†Œ.
  • λ§ˆν¬μ—… μ–Έμ–΄: ν‘œν˜„ν•˜λŠ” 것을 기술(μ •μ˜)ν•˜λŠ” κΈ°λŠ₯의 μ–Έμ–΄. (<> κΊ½μ‡ κΈ°ν˜Έλ‘œ ν‘œν˜„)

 

HTML을 μž‘μ„±ν•  λ•Œμ—λŠ” νƒœκ·Έ(< >)λΌλŠ” ν‘œκΈ°λ²•μœΌλ‘œ μž‘μ„±ν•˜κ³  νƒœκ·Έμ˜ 이름은 HTML5 μ›Ή ν‘œμ€€μ— 맞게 μž‘μ„±ν•œλ‹€.

<νƒœκ·Έμ΄λ¦„> μš”μ†Œμ˜ λ‚΄μš© </νƒœκ·Έμ΄λ¦„>

<h1>jongbin</h1>
  1. νƒœκ·Έμ˜ μ‹œμž‘μ„ μ•Œλ¦¬λŠ” μ—¬λŠ” νƒœκ·Έ. <νƒœκ·Έμ˜ 이름>
  2. νƒœκ·Έμ˜ 끝을 μ•Œλ¦¬λŠ” λ‹«λŠ” νƒœκ·Έ. </νƒœκ·Έμ˜ 이름>
  3. μ—¬λŠ” νƒœκ·Έμ™€ λ‹«λŠ” νƒœκ·Έ 사이에 μš”μ†Œμ˜ λ‚΄μš©μ„ μž…λ ₯.
  4. λ‹«λŠ” νƒœκ·Έκ°€ μ—†λŠ” νƒœκ·Έλ“€λ„ μ‘΄μž¬ν•œλ‹€. (<input> λ“±)
  5. λŒ€μ†Œλ¬Έμž ꡬ뢄 x ( But μ†Œλ¬Έμžλ₯Ό ꢌμž₯ )  가독성 μ’‹κ²Œ! ν˜‘μ—…, μœ μ§€λ³΄μˆ˜λ₯Ό μœ„ν•΄!
  6. κ°œν–‰(μ€„λ°”κΏˆ)을 λ¬΄μ‹œν•œλ‹€.

 

πŸ“’ 빈 μš”μ†Œ (Empty Element)

  • λ‚΄μš©μ΄ μ—†λŠ” νƒœκ·Έ.(λ‹«λŠ” νƒœκ·Έκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŒ)
  • 꺽쇄< >λ‚΄λΆ€ λ§ˆμ§€λ§‰μ— /λ₯Ό λΆ™μ΄λŠ”κ±΄ μƒλž΅κ°€λŠ₯ν•˜μ§€λ§Œ λΆ™μ—¬μ„œ λͺ…μ‹œν•΄μ£ΌλŠ” 것이 μ’‹λ‹€.
  • μΌκ΄€μ„±μžˆκ²Œ /λ₯Ό 뢙이면 μ „λΆ€ λ‹€ 뢙이고 그렇지 μ•ŠμœΌλ©΄ μ „λΆ€ λ‹€ 뢙이지 μ•ŠλŠ”κ²Œ μ’‹λ‹€.
<br> μ€„λ°”κΏˆ
<hr> λ‚΄μš©μ˜ ꡬ뢄(μˆ˜ν‰μ„ )
<img> 이미지 μ‚½μž…
<meta> 메타데이터 μ •μ˜
<input> μž…λ ₯μš”μ†Œ

 

πŸ“• μš”μ†Œμ˜ 쀑첩 (Nesting)

  • μš”μ†Œ λ‚΄λΆ€μ˜ λ‚΄μš©μœΌλ‘œμ„œ μš”μ†Œλ₯Ό μ‚½μž…ν•  수 μžˆλ‹€. (μƒν•˜κ΄€κ³„)
  • 포함관계, λΆ€λͺ¨μžμ‹κ΄€κ³„
  • μš”μ†ŒλŠ” 겹쳐질 수 μ—†λ‹€.
 

πŸ“— 주석

λΈŒλΌμš°μ €λŠ” 주석을 ν•΄μ„ν•˜μ§€ μ•ŠλŠ”λ‹€. 

HTML의 주석 ν‘œν˜„μ€ λ‹€μŒκ³Ό κ°™λ‹€. μ•žλ’€λ₯Ό 각각 <!--, -->둜 감싼닀.

<!-- <p>jongbin</p> -->

 

λΈŒλΌμš°μ €κ°€ μ£Όμ„μ˜ μ‹œμž‘λΆ€λΆ„(<!--)λ₯Ό λ§Œλ‚˜κ²Œ 되면 주석이 λλ‚˜λŠ” λΆ€λΆ„(-->)λ₯Ό λ§Œλ‚ λ•Œ κΉŒμ§€ λ¬΄μ‹œν•˜κ²Œ λœλ‹€ λ”°λΌμ„œ 주석 λ‚΄λΆ€μ˜ 주석은 잘λͺ»λ  κ°€λŠ₯성이 μžˆλ‹€.

<!-- <div class="box">
  <!-- <div class="item">1</div> -->
  <div class="item">2</div>
  <div class="item">3</div>
</div> -->

μ›λž˜ μ£Όμ„μ΄μ—ˆλ˜ item 클래슀의 1은 box 클래슀 μ „λΆ€λ₯Ό μ£Όμ„μ²˜λ¦¬ν•˜λ©΄μ„œ μ΄μƒν•œ μ£Όμ„μ²˜λ¦¬λ‘œ λ°”λ€Œκ²Œ 됨. (주의!)

 

πŸ“˜ HTML λ¬Έμ„œμ˜ ꡬ쑰

HTML λ¬Έμ„œλŠ” DOCTYPE, html, head, bobyλ₯Ό ν•„μˆ˜λ‘œ 포함해야 ν•œλ‹€.

<!DOCTYPE html>     // HTML 버전 λͺ…μ‹œ (html5)
<html>              // root μš”μ†Œ
    <head>          // μ›ΉνŽ˜μ΄μ§€μ˜ 정보λͺ…μ‹œ(μ‚¬μš©μžμ—κ²Œ 보여지지 x)
    </head>
    <body>          // λ³΄μ—¬μ§€λŠ” 컨텐츠
    </body>
</html>
  • <!DOCTYPE html>λŠ” 버전을 λͺ…μ‹œν•œλ‹€ μƒλž΅ν•΄λ„ λ˜μ§€λ§Œ κ΄€μŠ΅μ μœΌλ‘œ λͺ…μ‹œν•œλ‹€.
  • λͺ¨λ“  νƒœκ·Έλ“€μ€ <html></html>에 ν¬ν•¨λ˜μ–΄μ•Ό ν•œλ‹€.

 

πŸ‘€ DOCTYPE

Document type의 μ•½μžλ‘œ 버전을 λͺ…μ‹œν•œλ‹€.

  • κ΄€μŠ΅μ μœΌλ‘œ λ¬Έμ„œμ˜ 제일 μœ„μ— <!DOCTYPE html>(HTML5)이라고 λͺ…μ‹œν•œλ‹€.
  • html μ΄μ™Έμ˜ λ²„λ²ˆμ˜ λͺ…μ‹œλŠ” λ‹€μŒκ³Ό κ°™λ‹€.
<!-- XHTML 1.0 λ¬Έμ„œ μ„ μ–Έ -->
<!-- Strict -->
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- Transitional -->
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Frameset -->
http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">


<!-- XHTML 1.1 λ¬Έμ„œ μ„ μ–Έ -->
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


<!-- HTML 4.01 λ¬Έμ„œ μ„ μ–Έ -->
<!-- Strict -->
http://www.w3.org/TR/html4/strict.dtd">
<!-- Transitional -->
http://www.w3.org/TR/html4/loose.dtd">
<!-- Frameset -->
http://www.w3.org/TR/html4/frameset.dtd">

좜처: https://dasima.xyz/doctype-html/

  • DOCTYPE을 μ„ μ–Έν•˜λ©΄ ν‘œμ€€λͺ¨λ“œ, μ„ μ–Έν•˜μ§€ μ•ŠμœΌλ©΄ λΉ„ν‘œμ€€λͺ¨λ“œ(ν˜Έν™˜λͺ¨λ“œ)둜 λžœλ”λ§ν•œλ‹€.
  • λΉ„ν‘œμ€€λͺ¨λ“œ(ν˜Έν™˜λͺ¨λ“œ)일 경우 였래된 νŽ˜μ΄μ§€λ„ μ΅œμ‹  λΈŒλΌμš°μ €μ—μ„œ 깨지지 μ•Šκ²Œ ν•˜κΈ° μœ„ν•΄μ„œ λΈŒλΌμš°μ €λ§ˆλ‹€ λ‹€λ₯΄κ²Œ 보일 수 μžˆλ‹€.

 

πŸ‘€ head νƒœκ·Έ

headνƒœκ·Έμ—λŠ” λ¬Έμ„œμ˜ 정보(메타데이터)λ₯Ό 가진닀.

  • ν•œκ°œμ˜ titleμš”μ†Œλ₯Ό 포함해야 ν•œλ‹€.
  • μƒλž΅λ„ κ°€λŠ₯ν•˜μ§€λ§Œ μƒλž΅ν•˜μ§€ μ•ŠλŠ” 것을 ꢌμž₯.

πŸ‘€ body νƒœκ·Έ

body νƒœκ·Έ λ‚΄λΆ€μ—λŠ” λͺ¨λ“  λ‚΄μš©μ˜ μš”μ†Œλ“€μ΄ λ‹΄κΈ΄λ‹€.

  • ν•œκ°œμ˜ body νƒœκ·Έλ§Œ μ‘΄μž¬ν•  수 μžˆλ‹€.
  • 일반 μš”μ†Œλ“€μ²˜λŸΌ style을 μž…νž 수 μžˆλ‹€.

 

πŸ“™ μ½˜ν…μΈ  μΉ΄ν…Œκ³ λ¦¬

  • ν•˜λ‚˜μ˜ μš”μ†Œκ°€ μ—¬λŸ¬ μΉ΄ν…Œκ³ λ¦¬λ‘œ λΆ„λ₯˜λ  수 μžˆλ‹€.(1:n 관계)
  • MDN에 μ–΄λŠ μΉ΄ν…Œκ³ λ¦¬μ— ν•΄λ‹Ήν•˜λŠ”μ§€ λͺ…μ‹œλ˜μ–΄ μžˆλ‹€.(기술 μš”μ•½)
  • HTML5μ—μ„œ λΉ„μŠ·ν•œ νŠΉμ§•μœΌλ‘œ λ‚˜λˆ„μ–΄ 7가지 μΉ΄ν…Œκ³ λ¦¬λ‘œ μ„ΈλΆ„ν™”.
  1.  
메타데이터 μ½˜ν…μΈ  (Metadata Content)
  • λ¬Έμ„œμ˜ 메타데이터, λ‹€λ₯Έ λ¬Έμ„œλ₯Ό κ°€λ₯΄ν‚€λŠ” 링크 등을 λ‚˜νƒ€λ‚΄λŠ” μš”μ†Œ
ν”Œλ‘œμš° μ½˜ν…μΈ  (Flow Content)
  • μ›Ή νŽ˜μ΄μ§€ 상에 일뢀 메타데이터λ₯Ό μ œμ™Έν•˜κ³  거의 λͺ¨λ“  μš”μ†Œ.
  • 보톡 ν…μŠ€νŠΈλ‚˜ μž„λ² λ””λ“œ μ½˜ν…μΈ λ₯Ό 포함
  • <body>의 λ‚΄μš©μ΄ 흐름에 따라 배치되기 λ•Œλ¬Έμ— ν”Œλ‘œμš° μ½˜ν…μΈ λΌκ³  함
μ„Ήμ…˜ μ½˜ν…μΈ  (Section Content)
  • μ›Ή λ¬Έμ„œμ˜ κ΅¬νšμ„ λ‚˜λˆŒ λ•Œ μ‚¬μš©
ν—€λ”© μ½˜ν…μΈ  (Heading Content)
  • μ„Ήμ…˜μ˜ 제λͺ©κ³Ό κ΄€λ ¨λœ μš”μ†Œ
ν”„λ ˆμ΄μ§• μ½˜ν…μΈ  (Phrasing Content)
  • λ¬Έλ‹¨μ—μ„œ ν…μŠ€νŠΈλ₯Ό λ§ˆν¬μ—… ν•  λ•Œ μ‚¬μš©
μž„λ² λ””λ“œ μ½˜ν…μΈ  (Embedded Content)
  • μ΄λ―Έμ§€λ‚˜ λΉ„λ””μ˜€ λ“± μ™ΈλΆ€ μ†ŒμŠ€λ₯Ό κ°€μ Έμ˜€κ±°λ‚˜ μ‚½μž…ν•  λ•Œ μ‚¬μš©λ˜λŠ” μš”μ†Œ (img, video, audio, iframe, canvas)
μΈν„°λž™ν‹°λΈŒ μ½˜ν…μΈ  (Interactive Content)
  • μ‚¬μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ„ μœ„ν•œ 컨텐츠 μš”μ†Œ
  • λ²„νŠΌμ„ ν΄λ¦­ν•˜κ±°λ‚˜, ν…μŠ€νŠΈλ₯Ό μž…λ ₯ (form - input)

'HTML' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[HTML] μ›Ή μ ‘κ·Όμ„± 및 WAI-ARIA  (0) 2023.02.20