HTML ๊ธฐ์ดˆ

Dayยท2022๋…„ 1์›” 3์ผ
0
post-thumbnail

๐Ÿ“1. ์›น ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ๊ฒƒ์˜ ์‹œ์ž‘์€ HTML์—์„œ ๋น„๋กฏ๋œ๋‹ค.

  • ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ๊ฒƒ๋“ค์€ ๋ชจ๋‘ HTML์„ ํ†ตํ•ด ๋ณผ ์ˆ˜ ์žˆ์Œ
  • ์›น ํŽ˜์ด์ง€์— ๋ณด์ด๋Š” ๋ชจ๋“  ๊ฒƒ๋“ค์€ ๊ธฐ์Šน์ „ HTML ํƒœ๊ทธ์˜ ๊ฒฐ๊ณผ๋ฌผ
  • ์›น ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์˜ ๋ฒ ์ด์Šค๊ฐ€ ๋˜๋Š” HTML
  • ๋ฌธ์„œ์˜ ๊ตฌ์กฐ์™€ ์ •๋ณด ์œ„๊ณ„๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ณด์ด๋Š” ์•„๋ฆ„๋‹ค์šด HTML ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ ๋งค์šฐ ์ค‘์š”!
  • semantic markup

๐Ÿ“2. ํƒœ๊ทธ ํ•ด๋ถ€ํ•™

  • tag
  • attribute: ์†์„ฑ, ํƒœ๊ทธ์˜ ์„ฑ๊ฒฉ์„ ๋””ํ…Œ์ผํ•˜๊ฒŒ ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
  • ๋‹ค์–‘ํ•œ ํƒœ๊ทธ์™€ ์›น ํ‘œ์ค€์— ๋งž๋Š” ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ• ์ตํžˆ๊ธฐ

๐Ÿ“3. Heading & Paragraph

  • Heading Tag: H1(์ œ๋ชฉ), H2, H3, H4, H5, H6
  • Paragraph: p

๐Ÿ“4. Emphasis

  • ๊ฐ•์กฐ: em(๊ธฐ์šธ๊ธฐ), strong(๊ตต๊ฒŒ)
  • ์ฐจ์ด์ ์€ ์—†์Œ

๐Ÿ“5. ๋งํฌ Anchor

  • ํ˜„ ์œ„์น˜์—์„œ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ์ด๋™ํ•  ๋•Œ ์‚ฌ์šฉ
  • href attribute ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•จ
  • hypertext reference(์ฐธ์กฐ, ์ฃผ์†Œ๊ฐ’)
  • url ์ฃผ์†Œ / ์ƒ๋Œ€ ๊ฒฝ๋กœ / ํŽ˜์ด์ง€ ๋‚ด ์ด๋™ / ๋ฉ”์ผ ์“ฐ๊ธฐ / ์ „ํ™” ๊ฑธ๊ธฐ / ์ƒˆ ์ฐฝ์—์„œ ์—ด๊ธฐ(blank)

๐Ÿ“6. Image

<img src="#" alt=""/>
  • src: source (์ด๋ฏธ์ง€ ์ฃผ์†Œ ๊ฐ’)
  • alt: alternative text (๋Œ€์ฒด ํ…์ŠคํŠธ)

๐Ÿ“7. List

  • ol(ordered list): ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ๋ชฉ๋ก (ex. ๋ ˆ์‹œํ”ผ)
  • ul(unordered list): ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋ชฉ๋ก
  • ul๊ณผ ol์˜ ์ž์‹ ์š”์†Œ๋Š” ๋ฌด์กฐ๊ฑด li๋งŒ ๊ฐ€๋Šฅ!

๐Ÿ“8. Description List

  • ์šฉ์–ด๋ฅผ ์ •์˜ํ•  ๋•Œ
  • key-value๋กœ ์ •๋ณด ์ œ๊ณตํ•  ๋•Œ
  • dl, dt(key), dd(value), dfn(์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ)
  • Good Practice
<dl>
  <dt>๊น€๋ฒ„๊ทธ</dt>
  <dd>์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์˜ ์„ฑ์žฅ ๋“œ๋ผ๋งˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ์œ ํŠœ๋ธŒ ์ฑ„๋„์ž…๋‹ˆ๋‹ค</dd>
</dl>

<dl>
  <dt>
    <dfn>development</dfn>
  </dt>
  <dd>1. dd </dd>
  <dd>2. cc </dd>
</dl>

<dl>
  <dt>๊น€๋ฒ„๊ทธ</dt>
  <dt>Kimbug</dt>
  <dd>์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์˜ ์„ฑ์žฅ ๋“œ๋ผ๋งˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ์œ ํŠœ๋ธŒ ์ฑ„๋„์ž…๋‹ˆ๋‹ค</dd>
</dl>

<dl>
  <div>
    <dt>๊น€๋ฒ„๊ทธ</dt>
    <dd>์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์˜ ์„ฑ์žฅ ๋“œ๋ผ๋งˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ์œ ํŠœ๋ธŒ ์ฑ„๋„์ž…๋‹ˆ๋‹ค</dd>
  </div>
</dl>
  • Bad Practice
<dl>
  <dt>๊น€๋ฒ„๊ทธ</dt>
  <dd>์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์˜ ์„ฑ์žฅ ๋“œ๋ผ๋งˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ์œ ํŠœ๋ธŒ ์ฑ„๋„์ž…๋‹ˆ๋‹ค</dd>
  <dt>๋ฐ๋ฒจ์—…</dt>
  <!-- ๋ฐ๋ฒจ์—…์„ ์„ค๋ช…ํ•˜๋Š” dd๊ฐ€ ์—†์Œ -->
</dl>

<!-- dl์˜ ์ž์‹์š”์†Œ๋Š” ์˜ค์ง div, dt, dd๋งŒ ๊ฐ€๋Šฅ! -->
<dl>
  <section>
    <dt>๊น€๋ฒ„๊ทธ</dt>
    <dd>์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์˜ ์„ฑ์žฅ ๋“œ๋ผ๋งˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ์œ ํŠœ๋ธŒ ์ฑ„๋„์ž…๋‹ˆ๋‹ค</dd>
  </section>
</dl>

๐Ÿ“8. Quotation

  • blockquote: ๋” ๋งŽ์ด ์‚ฌ์šฉ
  • q: ๋ฌธ๋‹จ ๋‚ด์˜ ์ธ์šฉ๋ฌธ ์‚ฌ์šฉ ์‹œ
  • cite: ์ถœ์ฒ˜

๐Ÿ“9. Div & Span

  • ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†๊ณ , ์š”์†Œ๋ฅผ ๋ฌถ์–ด์•ผํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ž„
  • span: text๋ฅผ ๊ทธ๋ฃจํ•‘ํ•  ๋•Œ

๐Ÿ“10. Form

<form action="API ์ฃผ์†Œ" method="GET|POST"></form>
  • ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ Input์„ ๋ฐ›๊ธฐ ์œ„ํ•œ ํƒœ๊ทธ
    action: API-์„œ๋ฒ„์—๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ URL
    method: GET OR POST
    POST: ์ •๋ณด์˜ ์–‘์ด ๋งŽ์„ ๋•Œ ์‚ฌ์šฉ
    input: ์ž…๋ ฅ์ฐฝ / type attribute ๋ช…์‹œ
    type: text/number/email/password

๐Ÿ“11. Input & Label

<input type="text">
  • input ํƒœ๊ทธ attribute
    1) placeholedr: ์•ˆ๋‚ด๋ฌธ
    2) required: ๋นˆ์นธ x
    3) disabled: ์ž…๋ ฅ x
    4) value="": ๊ธฐ๋ณธ๊ฐ’(๋ณต์‚ฌ ๊ฐ€๋Šฅ)
    5) minlength/maxlength: ์ตœ์†Œ ๋ฌธ์ž ์ˆ˜/์ตœ๋Œ€ ๋ฌธ์ž ์ˆ˜
    6) min/max: ์ตœ์†Œ ์ˆซ์ž/์ตœ๋Œ€ ์ˆซ์ž
    7) accept: ํŒŒ์ผ ํ™•์žฅ์ž ์ œํ•œ (accept=".png, .jpg")
<label for="inputID">๋ผ๋ฒจ</label>
<input id="inputID" type="text">
  • label: ๋ถ€๊ฐ€์ ์ธ ํƒœ๊ทธ
    ํผ ์–‘์‹์— ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ํƒœ๊ทธ
    for attribute ์‚ฌ์šฉ
    label ์„ ํƒ ์‹œ input ํƒœ๊ทธ์— focus

๐Ÿ“12. Radio & Checkbox

  • radio: ๋‹จ์ผ ์„ ํƒ
    ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ attribute
    1) name: name์„ ๋™์ผํ•˜๊ฒŒ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ๋‹จ์ผ ์„ ํƒ ๊ฐ€๋Šฅํ•จ
    2) value: submit ์‹œ ์–ด๋–ค radio๊ฐ€ ์„ ํƒ ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Œ | name=value ๊ฐ’์œผ๋กœ ๋„˜์–ด๊ฐ
    ์„œ๋ฒ„๊ฐ€ ๊ฐ’์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • checkbox: ๋‹ค์ค‘ ์„ ํƒ ๊ฐ€๋Šฅ
    ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ attribute: radio์™€ ๋™์ผ

๐Ÿ“13. Select & Option & Textarea & Button

  • select ์ž์‹์ด option์ด๋ฏ€๋กœ select์—๋งŒ name ์ฃผ์–ด๋„ ๋จ
  • option ๋‹ค์ค‘ ์„ ํƒ ์›ํ•˜๋ฉด select ํƒœ๊ทธ์— multiple ์ž‘์„ฑ ํ›„ ctrl|command ์‚ฌ์šฉ
  • textarea: ์—ฌ๋Ÿฌ ์ค„์˜ ๊ธ€ ์ž‘์„ฑ ์‹œ ํ•„์š”
  • button type: button, submit, reset

๐Ÿ“14. Table

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์€ ํ‘œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ
  • Table์„ ๋งŒ๋“œ๋Š” ๊ธฐ๋ณธ ์›๋ฆฌ
<table>
  <tr> <!--table row(๊ฐ€๋กœ์ค„)-->
    <th>ํ…Œ์ด๋ธ” ํ—ค๋”</th>
    <td>ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ</td>
  </tr>
</table>
  • thead, tbody: ์‚ฌ์šฉํ•ด์ฃผ๋Š”๊ฒƒ์ด ์ข‹์Œ
  • tfoot: ์ดํ•ฉ, ๊ฒฐ๋ก  ์ž‘์„ฑ ์‹œ ์‚ฌ์šฉ
  • rowspan="": ๊ฐ€๋กœ์ค„ ๋ณ‘ํ•ฉ
  • colsapn="": ์„ธ๋กœ์ค„ ๋ณ‘ํ•ฉ
  • scope="row|col": ํ–‰์— ๋Œ€ํ•œ th์ธ์ง€ ์—ด์— ๋Œ€ํ•œ th์ธ์ง€ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” attribute

๐Ÿ“15. Media Files

  • ๋ฏธ๋””์–ด ํŒŒ์ผ: ํ…์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์ด๋ฏธ์ง€, ์˜์ƒ, ์˜ค๋””์˜ค ๋“ฑ์„ ๋ฌธ์„œ ์•ˆ์— ์ฒจ๋ถ€ํ•จ
  • audio src="ํŒŒ์ผ ์ฃผ์†Œ"
    controls: ์žฌ์ƒ ๋ฐ” | autoplay: ์ž๋™ ์žฌ์ƒ | loop: ๋ฐ˜๋ณต
    source ํƒœ๊ทธ ๋”ฐ๋กœ ์‚ฌ์šฉ: ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ํŒŒ์ผ์ผ ๊ฒฝ์šฐ ๋Œ€๋น„ํ•˜์—ฌ ํŒŒ์ผ ์—ฌ๋Ÿฌ๊ฐœ ์ž‘์„ฑ
  • video ํƒœ๊ทธ audio์™€ ๋™์ผ
  • iframe

๐Ÿ“16. ETC. ํƒœ๊ทธ

  • abbreviation(abbr): ์•ฝ์ž, ์•ฝ์–ด
    abbr title="ํ’€๋„ค์ž„"
  • address: ์—ฐ๋ฝ์ฒ˜ ์ •๋ณด ๋งˆํฌ์—… ์‹œ ์‚ฌ์šฉ
    ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ, URL, ์ด๋ฉ”์ผ ์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ, SNS
  • pre(preformatted text)
  • code: ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. ์ฃผ๋กœ pre ์•ˆ์— ์‚ฌ์šฉํ•จ(๋„์–ด์“ฐ๊ธฐ)

  • vs code - !+tab
  • document: HTML ๊ทธ ์ž์ฒด
  • title: ๋ฌธ์„œ์˜ ๋Œ€์ œ๋ชฉ
    ๊ฒ€์ƒ‰ ์ตœ์ ํ™”(Search Engine Optimization)์— ๋งค์šฐ ์ค‘์š”
    *title ์ž˜ ์“ฐ๋Š” ๋ฐฉ๋ฒ•
    1) ํ‚ค์›Œ๋“œ ๋‹จ์ˆœ ๋‚˜์—ด ๋น„์ถ”
    2) ํŽ˜์ด์ง€๋งˆ๋‹ค ๊ทธ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ
    3) ๋ฌด์—‡์— ๊ด€ํ•œ ๋‚ด์šฉ์ธ์ง€ ์„ผ์Šค์žˆ๊ฒŒ!
  • CSS ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ์ฒจ๋ถ€ํ•˜๋Š” ํƒœ๊ทธ
  • html ์•ˆ์— style ํƒœ๊ทธ ์ž‘์„ฑ: hmm..
  • script ํƒœ๊ทธ: js ํŒŒ์ผ ์ฒจ๋ถ€
    script๋Š” head ์•ˆ์— ์“ฐ์ง€ ์•Š์Œ
    link๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์‹œ๊ฐ„ ๊ฑธ๋ฆผ - ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  skip ๊ฐ€๋Šฅ
    script๋Š” ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ js๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ์Œ. js๋Š” ๊ฐ€์ ธ์˜ฌ ๋•Œ๊นŒ์ง€ ๋ฉˆ์ถฐ์žˆ์Œ. ๋กœ๋“œ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆผ. ๋น„ํšจ์œจ์ ! script๋Š” body ๋‚ด ๋ชจ๋“  ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ๋“œ๋œ ํ›„ ์ž‘์„ฑ

๐Ÿ“18. Meta Tag

<meta name="๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ข…๋ฅ˜" content="๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฐ’">
  • name="viewport"
    viewport์— ๋งž์ถฐ์„œ ํ™”๋ฉด ํฌ๊ธฐ ์กฐ์ •. ๋””๋ฐ”์ด์Šค ์‚ฌ์ด์ฆˆ์— ๋งž๊ฒŒ ๋ฐ˜์‘ํ˜• ์‚ฌ์ดํŠธ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•จ
  • content="width=device-width, initial-scale=1.0"
    ๋””๋ฐ”์ด์Šค width์— ๋งž๊ฒŒ, ์ดˆ๊ธฐ ๋ฐฐ์œจ: 1.0

๐Ÿ“ ์งง์€ ํ›„๊ธฐ

  • DL ํƒœ๊ทธ ์ฒ˜์Œ ์•Œ๊ฒŒ ๋จ๐Ÿ™„
  • input ํƒœ๊ทธ์— required attribute๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋นˆ์นธ ์žˆ์„ ๋•Œ submit ์•ˆ๋˜๋Š” ๊ฒƒ๋„ ์ฒ˜์Œ ์•Œ์•˜๋‹ค.
    ์—ฌํƒœ js๋กœ ๋ป˜ ์ง“ํ•œ ๊ฒŒ ์ƒ๊ฐ๋‚˜์„œ ๊ดด๋กœ์› ๋‹ค. minlength ๊ฐ™์€ attribute๋„...
    ์ฒ˜์Œ ์•ˆ ๊ฒŒ ์•„๋‹ˆ๋ผ ๊นŒ๋จน๊ณ  ์žˆ์—ˆ๋‚˜...๐Ÿ˜ญ ์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•œ ๊ฑธ js๋กœ ์–ผ๋งˆ๋‚˜ ๋ป˜์ง“์„ ํ•ด์™”๋˜์ง€...
  • script๋ฌธ์„ ๋งˆ์ง€๋ง‰์— ์“ฐ๋Š” ์ด์œ ๊ฐ€ ๋„ˆ๋ฌด ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ ๋“œ๋””์–ด ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์•„๋ฌด๋„ ์•ˆ์•Œ๋žด์คŒ. ์‚ฌ์‹ค์€ ๋‚ด๊ฐ€ ์„œ์น˜๋ฅผ ์•ˆ ํ•ด๋ดค๋‹ค... ๋ฌดํŠผ ์•ž์œผ๋กœ๋Š” js ํŒŒ์ผ์€ body ํƒœ๊ทธ ๋งˆ์ง€๋ง‰์— ์“ฐ๋Š” ๊ฑธ๋กœ.
  • HTML ํƒœ๊ทธ ์ •๋ง ๋งŽ๋‹ค. ์ƒˆ์‚ผ ๋งŽ๋‹ค. MDN ๋ฌธ์„œ ์„œ์น˜๋ฅผ ์ƒํ™œํ™”ํ•˜์ž.
  • VS Code์—์„œ Open in Preview๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋‹คํฌ๋ชจ๋“œ๋กœ ๋œจ๋Š” ๊ฒƒ์ด ๋ถˆํŽธํ•ด Live Preview๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค. ์‹ค์ œ ์›น์—์„œ ๋ณด๋Š” ๊ฒƒ๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š๋‹ค. iframe ํƒœ๊ทธ ๊นจ์ง€๋Š” ๊ฑฐ ๋ง๊ณ ๋Š” ๋‹ค๋ฅผ ๊ฒŒ ์—†์—ˆ์Œ๐Ÿ‘

0๊ฐœ์˜ ๋Œ“๊ธ€