HTML 1 : html 기초

2025. 1. 21. 16:24ㆍFront-end (Basic)/HTML

λ°˜μ‘ν˜•

[ λŒ€ν‘œ 이미지 ]

λͺ©μ°¨

1. HTMLμ΄λž€?

2. HTML λ¬Έμ„œ 골격

3. HTML μš”μ†Œ(νƒœκ·Έ) λΆ„λ₯˜ν•˜κΈ°


1. HTMLμ΄λž€?

Hyper Text Markup Language의 μ•½μ–΄λ‘œ, HTML의 ν‘œμ€€μ€ W3C와 WHATWGκ°€ μ£Όλ„μ μœΌλ‘œ μž‘μ„±ν•œλ‹€

 

HTML의 κ΅¬μ„±μš”μ†Œ

: μ‹œμž‘ νƒœκ·Έμ™€ μ’…λ£Œ νƒœκ·Έ 사이에 λ‚΄μš©μ„ μž‘μ„±ν•˜λŠ” λ°©μ‹μœΌλ‘œ κ΅¬μ„±λœλ‹€

 

1. Start Tag, End Tag (μ‹œμž‘νƒœκ·Έμ™€ μ’…λ£Œνƒœκ·Έ)

: μš”μ†Œμ˜ μ‹œμž‘κ³Ό 끝을 μ˜λ―Έν•˜λŠ” νƒœκ·Έ

 

2. Void μš”μ†Œ

: End Tagκ°€ μ—†λŠ” νƒœκ·Έλ“€(input, hr, meta, link λ“±)

 

3. Content(λ‚΄μš©)

: start tag와 end tag μ‚¬μ΄μ˜ λ‚΄μš©

 

4. Attributes(속성)

: νƒœκ·Έμ˜ λ™μž‘μ„ μ œμ–΄ν•˜λ„λ‘ μ§€μ •ν•˜λŠ” κ°’

<input type="checkbox" />

μœ„ μ½”λ“œμ—μ„œμ˜ 속성은 type="checkbox"κ°€ λœλ‹€.

 

 


μ•—! νƒœκ·Έμ— <, >λ₯Ό μ‚¬μš©ν•΄λ²„λ¦°λ‹€λ©΄ 본문에 νƒœκ·Έλ₯Ό 직접 μž‘μ„±ν•˜κ³  싢을 λ•ŒλŠ” μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ??

μ΄λŸ¬ν•œ κΊ½μ‡ κΈ°ν˜ΈλŠ” κ·ΈλŒ€λ‘œ μž‘μ„±ν•˜μ§€ μ•Šκ³  λ°”κΏ”μ„œ μž‘μ„±ν•΄μ£Όμ–΄μ•Όν•œλ‹€.

  • < → &lt; (less than)
  • > → &gt; (greater than)

 


2. HTML λ¬Έμ„œ 골격

vscodeλ₯Ό μ‚¬μš©ν•œλ‹€λ©΄, html 빈 λ¬Έμ„œμ— λŠλ‚Œν‘œ(!)λ₯Ό 치면 λ¬Έμ„œ 골격이 μ™„μ„±λœλ‹€.

DOCTYPE

λ¬Έμ„œμ˜ νƒ€μž…μ„ μ§€μ •ν•œλ‹€. html둜 μ§€μ •ν•¨μœΌλ‘œμ¨ HTML5둜 μž‘μ„±λœ λ¬Έμ„œμž„μ„ λ‚˜νƒ€λ‚Έλ‹€.

λͺ¨λ˜ λΈŒλΌμš°μ €μ—μ„œλŠ” DOCTYPE을 λͺ…μ‹œν•˜μ§€ μ•Šμ•„λ„ HTML5둜 μž‘μ„±λ˜μ—ˆμŒμ„ μΈμ‹ν•˜μ§€λ§Œ, IE9 이전 λ²„μ „μ˜ λΈŒλΌμš°μ €λŠ” μ•ˆλ˜κΈ° λ•Œλ¬Έμ—, μΌκ΄€λœ λ Œλ”λ§μ„ μœ„ν•΄ λ°˜λ“œμ‹œ λͺ…μ‹œν•˜λŠ” 것이 μ’‹λ‹€.

<!DOCTYPE html>

 

html

λ¬Έμ„œμ˜ 루트 지점을 λͺ…μ‹œν•˜λŠ” νƒœκ·Έλ‘œ, lang μ†μ„±μœΌλ‘œ ν•΄λ‹Ή μ„œλΉ„μŠ€ κ΅­κ°€λ₯Ό λͺ…μ‹œν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

λ‹€κ΅­μ–΄λ₯Ό μ§€μ›ν•˜λŠ” μ„œλΉ„μŠ€λΌλ©΄, μ–Έμ–΄κ°€ 변경될 λ•Œ lang 속성도 ν•¨κ»˜ λ³€κ²½ν•΄μ•Όν•œλ‹€.

<html lang="ko">
	<!-- lang 속성에 ν•œκ΅­ μ–Έμ–΄ μ‹λ³„μž "ko" ν• λ‹Ή -->
</html>

 

head

λ¬Έμ„œμ˜ 제λͺ©, 인코딩 ν˜•μ‹ 등을 μ§€μ •ν•œλ‹€.

자주 μ‚¬μš©λ˜λŠ” μ€‘μš”ν•œ μš”μ†Œλ‘œλŠ” <title>, <meta>κ°€ μžˆλ‹€.

<head>
	<title>λ¬Έμ„œμ˜ 제λͺ©</title>
    	<!-- μ‚¬μš©μž 뢁마크/검색 μ—”μ§„μ—μ„œ μ‹λ³„ν•˜λŠ” κΈ°μ€€μœΌλ‘œ μ‚¬μš©λ¨ -->
    <meta chaset="UTF-8"/>
    	<!-- 인코딩 방식, 뷰포트 μ§€μ • λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ -->
        <!-- chaset : λ¬Έμ„œμ˜ 인코딩 방식을 μ§€μ •ν•œλ‹€. μ•ˆν•˜λ©΄ 깨질 수 있음 -->
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    	<!-- IE의 λ Œλ”λ§ 사양을 μ„Έλ°€ν•˜κ²Œ μ‘°μ •. X-UA-Compatible 값을 IE=Edge둜 μ§€μ •ν•˜λ©΄ μ΅œμ‹  Edge μ‚¬μš© -->
</head>

 

body

λ¬Έμ„œμ˜ λ‚΄μš©μ΄ λ“€μ–΄κ°€λ©°, 일반적으둜 <head> νƒœκ·Έ λ‹€μŒμ— μž‘μ„±ν•œλ‹€.

<!DOCTYPE>
<html lang="ko">
	<head>
    	<title>λ¬Έμ„œμ˜ 제λͺ©</title>
        <meta charset="UTF-8"/>
        <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    </head>
    <body>
    	<!-- λ¬Έμ„œμ˜ λ‚΄μš© -->
    </body>
</html>

 

 


3. HTML μš”μ†Œ(νƒœκ·Έ) λΆ„λ₯˜ν•˜κΈ°

1. 인라인 μš”μ†Œ & 블둝 μš”μ†Œ

  • 인라인(inline) μš”μ†Œ : νƒœκ·Έκ°€ ν• λ‹Ήλœ ν…μŠ€νŠΈ/μ΄λ―Έμ§€μ˜ 크기에 λ§žλŠ” ν•„μš”ν•œ κ³΅κ°„λ§Œ μ°¨μ§€ : <span>, <button>, <img> λ“±
  • 블둝(block) μš”μ†Œ : νƒœκ·Έκ°€ μ‹œμž‘λ˜λ©΄ κ°œν–‰ν•˜μ—¬ μ‹œμž‘ν•˜λ©°, λΆ€λͺ¨ μš”μ†Œμ˜ 100% λ„ˆλΉ„λ₯Ό μ°¨μ§€ : <div>, <article>, <form> λ“±

블둝 μš”μ†ŒλŠ” 인라인 μš”μ†Œμ™€ 블둝 μš”μ†Œ λͺ¨λ‘ 포함할 수 μžˆμ§€λ§Œ, 인라인 μš”μ†ŒλŠ” 인라인 μš”μ†Œλ§Œ 포함할 수 μžˆλ‹€

 

2. μ½˜ν…μΈ  λͺ¨λΈ(Contents Model)

HTML5μ—μ„œλŠ” μš”μ†Œκ°€ μ–΄λ–€ μ½˜ν…μΈ λ₯Ό ν‘œν˜„ν•  수 μžˆλŠ”μ§€, μ–΄λ–€ ν•˜μœ„ μš”μ†Œλ₯Ό κ°€μ§€λŠ”μ§€μ— 따라 λͺ¨λΈμ„ λΆ„λ₯˜ν•œλ‹€.

  • Metadata Content : λ‚˜λ¨Έμ§€ μ½˜ν…μΈ μ˜ ν‘œμ‹œ, λ™μž‘μ„ μ„€λͺ…ν•˜κ±°λ‚˜ λ‹€λ₯Έ λ¬Έμ„œμ™€μ˜ 관계λ₯Ό μ„€μ •ν•˜λŠ” μš”μ†Œ
    • <base>, <link>, <meta>, <nonscript>, <script>, <template>, <title>
  • Flow Content : λ³Έλ¬Έμ—μ„œ μ‚¬μš©λ˜λŠ” λŒ€λΆ€λΆ„μ˜ μš”μ†Œ
    • <a>, <abbr>, <address>,  <area>,  <article>,  <aside>,  <audio>,  <b>,  <bdi>,  <bdo>,  <blockquote>,  <br>,  <button>,  <canvas>,  <cite>,  <code>,  <data>,  <datalist>,  <del>,  <details>,  <dfn>,  <div>,  <dl>,  <em>,  <embed>,  <fieldset>,  <figure>,  <footer>,  <form>,  <h1>,  <h2>,  <h3>,  <h4>,  <h5>,  <h6>,  <header>, <hr>,  <i>,  <iframe>,  <img>,  <input>,  <ins>,  <kbd>,  <keyget>,  <label>,  <main>,  <map>,  <mark>,  <math>,  <menu>,  <meter>,  <nav>,  <noscript>,  <object>,  <ol>,  <output>,  <p>,  <picture>,  <pre>,  <progress>,  <q>,  <ruby>,  <s>,  <samp>, <script>,  <section>,  <select>,  <small>,  <span>,  <strong>,  <sub>,  <sup>,  <svg>,  <table>,  <template>,  <textarea>,  <time>,  <u>,  <ul>,  <var>,  <video>,  <wbr>
  • Sectioning Content : 아웃라인을 μ •μ˜ν•˜λ©°, Heading(제λͺ©) μš”μ†Œμ™€ Footer(λ°”λ‹₯κΈ€) μš”μ†Œμ˜ λ²”μœ„(Scope)λ₯Ό μ •μ˜
    • <article>, <aside>, <nav>, <section>
  • Phrasing Content : λ¬Έμ„œ λ‚΄μ˜ ν…μŠ€νŠΈλ₯Ό μ˜λ―Έν•˜λ©° 단락을 ν˜•μ„±ν•˜λŠ” μš”μ†Œ
    • <a>, <abbr>, <address>, <b>,  <bdi>,  <bdo>,  <blockquote>,  <br>,  <button>,  <cite>,  <code>,  <data>,  <datalist>,  <del>,  <details>,  <dfn>,  <div>,  <dl>,  <em>,  <fieldset>,  <figure>,  <footer>,  <form>, <header>, <hr>,  <i>,  <input>,  <ins>,  <kbd>,  <keyget>,  <label>,  <main>,  <map>,  <mark>, <menu>,  <meter>, <noscript>,  <ol>,  <output>,  <p>,  <pre>,  <progress>,  <q>,  <ruby>, <s>,    <samp>, <script>,  <select>,  <small>,  <span>,  <strong>,  <sub>,  <sup>, <table>,  <template>,  <textarea>,  <time>,  <u>,<ul>,  <var>
  • Heading Content : μ„Ήμ…˜μ˜ 헀더λ₯Ό μ •μ˜ν•˜λŠ” μš”μ†Œ
    • <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
  • Embedded / Interactive Content : μ™ΈλΆ€μ˜ μžμ›μ„ κ°€μ Έμ˜€κ±°λ‚˜ μ‚½μž…ν•  λ•Œ μ‚¬μš©ν•˜λŠ” μš”μ†Œ(μœ μ €μ™€μ˜ μƒν˜Έμž‘μš©μ— μ‚¬μš©)
    • <audio>, <canvas>, <embed>, <iframe>, <img>, <math>, <object>, <picture>, <svg>, <video>

 

 

 

 

μ°Έκ³ 

λ°˜μ‘ν˜•