HTML5

SongEยท2022๋…„ 10์›” 28์ผ
1

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
2/6
post-thumbnail

1. HTML5 ๊ธฐ๋ณธ ๋ฌธ๋ฒ•


๐Ÿ‘‰ HTML์€ ์›นํŽ˜์ด์ง€๋ฅผ ๊ธฐ์ˆ ํ•˜๊ธฐ ์œ„ํ•œ ๋งˆํฌ์—… ์–ธ์–ด์ด๋‹ค. *๋งˆํฌ์—… ์–ธ์–ด๋ž€? ํƒœ๊ทธ๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–ธ์–ด

1.1 ์–ดํŠธ๋ฆฌ๋ทฐํŠธ


1.1.1 ๊ธ€๋กœ๋ฒŒ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ

AttributeDescription
hiddencss์˜ hidden๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์˜๋ฏธ์ƒ์œผ๋กœ๋„ ๋ธŒ๋ผ์šฐ์ €์— ๋…ธ์ถœ๋˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.
lang์ง€์ •๋œ ์š”์†Œ์˜ ์–ธ์–ด๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๊ฒ€์ƒ‰์—”์ง„์˜ ํฌ๋กค๋ง ์‹œ ์›นํŽ˜์ด์ง€์˜ ์–ธ์–ด๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
tabindex์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ๋กœ ํŽ˜์ด์ง€๋ฅผ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์‹œ ์ด๋™ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•œ๋‹ค.
title์š”์†Œ์— ๊ด€ํ•œ ์ œ๋ชฉ์„ ์ง€์ •ํ•œ๋‹ค.

1.2 HTML History


๐Ÿ‘‰ 2014๋…„ 10์›” HTML5 ์ตœ์ข… ํ‘œ์ค€์•ˆ ๊ณต๊ฐœ

2. ์‹œ๋งจํ‹ฑ ์š”์†Œ์™€ ๊ฒ€์ƒ‰ ์—”์ง„


๐Ÿ‘‰ ๊ฒ€์ƒ‰์—”์ง„์€ ๋กœ๋ด‡(Robot)์ด๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ด ๋งค์ผ ์ „์„ธ๊ณ„์˜ ์›น์‚ฌ์ดํŠธ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.(์ด๊ฒƒ์„ ํฌ๋กค๋ง์ด๋ผ ํ•˜๋ฉฐ ๊ฒ€์ƒ‰์—”์ง„์˜ ํฌ๋กค๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.) ๊ทธ๋ฆฌ๊ณ  ๊ฒ€์ƒ‰์—”์ง„์€ ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ์— ๋Œ€์‘ํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด๋‘”๋‹ค.(์ด๊ฒƒ์„ ์ธ๋ฑ์‹ฑ์ด๋ผ ํ•˜๋ฉฐ ๊ฒ€์ƒ‰์—”์ง„์˜ ์ธ๋ฑ์„œ๊ฐ€ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.)

์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ฒ€์ƒ‰์—”์ง„์ด ์ˆ˜์ง‘ํ•˜๋Š” ์ •๋ณด๋Š” ์›น์‚ฌ์ดํŠธ์˜ HTML ์ฝ”๋“œ์ด๋‹ค. ์ด๋•Œ HTML ์ฝ”๋“œ์˜ ์‹œ๋ฉ˜ํŠธ ์š”์†Œ๋ฅผ ํ•ด์„ํ•˜๊ฒŒ ๋œ๋‹ค.

<h1>์ œ๋ชฉ</h1> ์ฝ”๋“œ ๊ฐ™์€ h1 ํƒœ๊ทธ๋Š” ์›น๋ฌธ์„œ์˜ ์ค‘์š”ํ•œ ์ œ๋ชฉ์œผ๋กœ ์ธ์‹ํ•˜๊ณ  ์ธ๋ฑ์Šค์— ํฌํ•จ์‹œํ‚ฌ ํ™•๋ฅ ์ด ๋†’๋‹ค.

์ด์ฒ˜๋Ÿผ ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋Š” ๋ธŒ๋ผ์šฐ์ €, ๊ฒ€์ƒ‰์—”์ง„, ๊ฐœ๋ฐœ์ž ๋ชจ๋‘์—๊ฒŒ ์ฝ˜ํ…์ธ ์˜ ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

HTML ์š”์†Œ๋Š” non-semantic ์š”์†Œ, semantic ์š”์†Œ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

non-semantic ์š”์†Œ
div, span ๋“ฑ์ด ์žˆ์œผ๋ฉฐ ์ด๋“ค ํƒœ๊ทธ๋Š” content์— ๋Œ€ํ•˜์—ฌ ์–ด๋–ค ์„ค๋ช…๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

semantic ์š”์†Œ
form, table, img ๋“ฑ์ด ์žˆ์œผ๋ฉฐ ์ด๋“ค ํƒœ๊ทธ๋Š” content์˜ ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•œ๋‹ค.

๋‹ค์Œ์€ HTML5์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ์ด๋‹ค.

tagDescription
headerํ—ค๋”๋ฅผ ์˜๋ฏธํ•œ๋‹ค
nav๋‚ด๋น„๊ฒŒ์ด์…˜์„ ์˜๋ฏธํ•œ๋‹ค
aside์‚ฌ์ด๋“œ์— ์œ„์น˜ํ•˜๋Š” ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค
section๋ณธ๋ฌธ์˜ ์—ฌ๋Ÿฌ ๋‚ด์šฉ(article)์„ ํฌํ•จํ•˜๋Š” ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค
article๋ถ„๋ฌธ์˜ ์ฃผ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค
footerํ‘ธํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค

3. ์›นํŽ˜์ด์ง€์˜ ๊ธฐ๋ณธ ํƒœ๊ทธ


3.1 meta tag


๐Ÿ‘‰ meta ์š”์†Œ๋Š” description, keywords, author, ๊ธฐํƒ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •์˜์— ์‚ฌ์šฉ๋œ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ๋ธŒ๋ผ์šฐ์ €, ๊ฒ€์ƒ‰์—”์ง„(keywords) ๋“ฑ์— ์˜ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

charset ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉํ•  ๋ฌธ์ž์…‹์„ ์ •์˜ํ•œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <p>์•ˆ๋…•ํ•˜์„ธ์š”</p>
    <p>Hello</p>
    <p>ใ“ใ‚“ใซใกใฏ</p>
    <p>ไฝ ๅฅฝ</p>
    <p>ืฉืœื•ื</p>
    <p>เธชเธงเธฑเธชเธ”เธต</p>
  </body>
</html>

๐Ÿ‘‰ SEO(๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”)๋ฅผ ์œ„ํ•ด ๊ฒ€์ƒ‰์—”์ง„์ด ์‚ฌ์šฉํ•  keywords์„ ์ •์˜ํ•œ๋‹ค.

<meta name="keywords" content="HTML, CSS, XML, XHTML, JavaScript">

๐Ÿ‘‰ ์›นํŽ˜์ด์ง€์˜ ์„ค๋ช…์„ ์ •์˜ํ•œ๋‹ค.

<meta name="description" content="Web tutorials on HTML and CSS">

๐Ÿ‘‰ ์›นํŽ˜์ด์ง€์˜ ์ €์ž์„ ๋ช…๊ธฐํ•œ๋‹ค.

<meta name="author" content="John Doe">

๐Ÿ‘‰ ์›นํŽ˜์ด์ง€๋ฅผ 30์ดˆ ๋งˆ๋‹ค Refreshํ•œ๋‹ค.

<meta http-equiv="refresh" content="30">

4. ํ…์ŠคํŠธ ๊ด€๋ จ ํƒœ๊ทธ


4.1 ์ œ๋ชฉ ํƒœ๊ทธ


๐Ÿ‘‰ ์‹œ๋งจํ‹ฑ ์›น์˜ ์˜๋ฏธ๋ฅผ ์‚ด๋ ค์„œ ์ œ๋ชฉ ์ด์™ธ์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ฒ€์ƒ‰์—”์ง„์€ ์ œ๋ชฉ ํƒœ๊ทธ๋ฅผ ์ค‘์š”ํ•œ ์˜๋ฏธ๋กœ ๋ฐ›์•„๋“ค์ผ ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋‹ค.

4.2 ๊ธ€์ž ํ˜•ํƒœ ํƒœ๊ทธ


4.2.1 strong

๐Ÿ‘‰ b tag์™€ ๋™์ผํ•˜๊ฒŒ bold์ฒด๋ฅผ ์ง€์ •ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์˜๋ฏธ๋ก ์ (Semantic) ์ค‘์š”์„ฑ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค.

ํ‘œํ˜„๋˜๋Š” ์™ธ์–‘์€ b tag์™€ ๋™์ผํ•˜์ง€๋งŒ ์›นํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด strong๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.

4.2.2 em

๐Ÿ‘‰ emphasized(๊ฐ•์กฐ, ์ค‘์š”ํ•œ) text๋ฅผ ์ง€์ •ํ•œ๋‹ค. i tag์™€ ๋™์ผํ•˜๊ฒŒ Italic์ฒด๋กœ ํ‘œํ˜„๋œ๋‹ค. ์˜๋ฏธ๋ก ์ (Semantic) ์ค‘์š”์„ฑ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค.

4.3 ๋ณธ๋ฌธ ํƒœ๊ทธ


๐Ÿ‘‰ ์—ฐ์†์  ๊ณต๋ฐฑ์„ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

<!DOCTYPE html>
<html>
  <body>
    <p>This is&nbsp; a para&nbsp; &nbsp; graph</p>
  </body>
</html>

4.3.1 pre

๐Ÿ‘‰ ํ˜•์‹ํ™”๋œ(preformatted) text๋ฅผ ์ง€์ •ํ•œ๋‹ค. pre ํƒœ๊ทธ ๋‚ด์˜ content๋Š” ์ž‘์„ฑ๋œ ๊ทธ๋Œ€๋กœ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œ๋œ๋‹ค.

4.3.2 q

๐Ÿ‘‰ ์งง์€ ์ธ์šฉ๋ฌธ(quotation)์„ ์ง€์ •ํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ธ์šฉ๋ถ€ํ˜ธ(ํฐ๋”ฐ์˜ดํ‘œ/quotation marks)๋กœ q ์š”์†Œ๋ฅผ ๊ฐ์‹ผ๋‹ค.

4.3.3 blockquote

๐Ÿ‘‰ ๊ธด ์ธ์šฉ๋ฌธ ๋ธ”๋ก์„ ์ง€์ •ํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” blockquote ์š”์†Œ๋ฅผ ๋“ค์—ฌ์“ฐ๊ธฐํ•œ๋‹ค. css๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ style์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

<blockquote>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</blockquote>

5. HTML์˜ ํ•ต์‹ฌ ๊ฐœ๋…์ธ Hyperlink


๐Ÿ‘‰ HyperText์˜ Hyper๋Š” ์ปดํ“จํ„ฐ ์šฉ์–ด๋กœ์„œ ํ…์ŠคํŠธ ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ๋™์ผ ์„ ์ƒ์— ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹ค์ค‘์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ด๊ฒƒ์€ HTML์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์ง•์ธ link์˜ ๊ฐœ๋…๊ณผ ์—ฐ๊ฒฐ๋˜๋Š”๋ฐ ๊ธฐ์กด ๋ฌธ์„œ๋‚˜ ํ…์ŠคํŠธ์˜ ์„ ํ˜•์„ฑ, ๊ณ ์ •์„ฑ์˜ ์ œ์•ฝ์—์„œ ๋ฒ—์–ด๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์ทจ๋“ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ํ•œ ํ…์ŠคํŠธ์—์„œ ๋‹ค๋ฅธ ํ…์ŠคํŠธ๋กœ ๊ฑด๋„ˆ๋›ฐ์–ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ด ๊ธฐ๋Šฅ์„ ํ•˜์ดํผ๋งํฌ(hyper link)๋ผ ํ•œ๋‹ค.

HTML link๋Š” hyperlink๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ a(anchor) tag๊ฐ€ ๊ทธ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

5.1 href ์–ดํŠธ๋ฆฌ๋ทฐํŠธ


๐Ÿ‘‰ href ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

ValueDescription
์ ˆ๋Œ€ URL์›น์‚ฌ์ดํŠธ URL (href=โ€http://www.example.com/default.htmlโ€)
์ƒ๋Œ€ URL์ž์‹ ์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœํ•œ ๋Œ€์ƒ์˜ URL (href=โ€html/default.htmlโ€)
fragment identifierํŽ˜์ด์ง€ ๋‚ด์˜ ํŠน์ • id๋ฅผ ๊ฐ–๋Š” ์š”์†Œ์—์˜ ๋งํฌ (href=โ€#topโ€)
๋ฉ”์ผmailto:
scripthref=โ€javascript:alert(โ€˜Helloโ€™);โ€
<!DOCTYPE html>
<html>
  <body>
    <a href="http://www.google.com">URL</a><br>
    <a href="html/my.html">Local file</a><br>
    <a href="file/my.pdf" download>Download file</a><br>
    <a href="#">fragment identifier</a><br>
    <a href="mailto:someone@example.com?Subject=Hello again">Send Mail</a><br>
    <a href="javascript:alert('Hello');">Javascript</a>
  </body>
</html>

๐Ÿ‘‰ fragment identifier๋ฅผ ์ด์šฉํ•œ ํŽ˜์ด์ง€ ๋‚ด๋ถ€ ์ด๋™ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

<h2 id="top">Top of page!</h2>

<p>In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since.</p>

<a href="#top">Go to top</a>

5.2 target ์–ดํŠธ๋ฆฌ๋ทฐํŠธ


๐Ÿ‘‰ target ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ๋งํฌ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ์œˆ๋„์šฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์˜คํ”ˆํ•  ์ง€๋ฅผ ์ง€์ •ํ•œ๋‹ค.

ValueDescription
_self๋งํฌ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ์—ฐ๊ฒฐ๋ฌธ์„œ๋ฅผ ํ˜„์žฌ ์œˆ๋„์šฐ์—์„œ ์˜คํ”ˆํ•œ๋‹ค (๊ธฐ๋ณธ๊ฐ’)
_blank๋งํฌ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ์—ฐ๊ฒฐ๋ฌธ์„œ๋ฅผ ์ƒˆ๋กœ์šด ์œˆ๋„์šฐ๋‚˜ ํƒญ์—์„œ ์˜คํ”ˆํ•œ๋‹ค

target="_blank"๋ฅผ ์‚ฌ์šฉํ•ด ์™ธ๋ถ€ ํŽ˜์ด์ง€๋ฅผ ์˜คํ”ˆํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๋™ํ•œ ์™ธ๋ถ€ ํŽ˜์ด์ง€์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์•…์˜์ ์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์ (Tabnabbing ํ”ผ์‹ฑ ๊ณต๊ฒฉ)์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ rel="noopener noreferrer"๋ฅผ ์ถ”๊ฐ€ํ•ด Tabnabbing ํ”ผ์‹ฑ ๊ณต๊ฒฉ์— ๋Œ€๋น„ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

6. ํ‘œ(Table) ํƒœ๊ทธ


๐Ÿ‘‰ ํ…Œ์ด๋ธ” ํƒœ๊ทธ์˜ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

attributeDescription
rowspanํ•ด๋‹น ์…€์ด ์ ์œ ํ•˜๋Š” ํ–‰์˜ ์ˆ˜ ์ง€์ •
colspanํ•ด๋‹น ์…€์ด ์ ์œ ํ•˜๋Š” ์—ด์˜ ์ˆ˜ ์ง€์ •
 <table>
      <tr>
        <th>Name</th>
        <th colspan="2">Telephone</th>
      </tr>
      <tr>
        <td>Bill Gates</td>
        <td>555 77 854</td>
        <td>555 77 855</td>
      </tr>
    </table>

7. ๋™์˜์ƒ, ์Œ์•… ๋“ฑ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํƒœ๊ทธ


7.1 ๋ฏธ๋””์–ด


7.1.1 audio

audio ํƒœ๊ทธ๋Š” HTML5์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ํƒœ๊ทธ์ด๋‹ค. IE8 ์ดํ•˜์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

attributeDescription
src์Œ์•… ํŒŒ์ผ ๊ฒฝ๋กœ
preload์žฌ์ƒ ์ „์— ์Œ์•… ํŒŒ์ผ์„ ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ฌ ๊ฒƒ์ธ์ง€ ์ง€์ •
autoplay์Œ์•… ํŒŒ์ผ์„ ์ž๋™์˜ ์žฌ์ƒ ๊ฐœ์‹œํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •
loop์Œ์•…์„ ๋ฐ˜๋ณตํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •
controls์Œ์•… ์žฌ์ƒ ๋„๊ตฌ๋ฅผ ํ‘œ์‹œํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •. ์žฌ์ƒ ๋„๊ตฌ์˜ ์™ธ๊ด€์€ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

์›น๋ธŒ๋ผ์šฐ์ € ๋ณ„๋กœ ์ง€์›ํ•˜๋Š” ์Œ์•… ํŒŒ์ผ ํ˜•์‹์ด ๋‹ค๋ฅด๋‹ค. ํŒŒ์ผ ํ˜•์‹์— ๋”ฐ๋ผ ์žฌ์ƒ๋˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.

source ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ํ˜•์‹์˜ ์ฐจ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค. type ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค.

<audio controls>
      <source src="assets/audio/Kalimba.mp3" type="audio/mpeg">
      <source src="assets/audio/Kalimba.ogg" type="audio/ogg">
</audio>

7.1.2 video

video ํƒœ๊ทธ๋Š” HTML5์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ํƒœ๊ทธ์ด๋‹ค. IE8 ์ดํ•˜์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

attributeDescription
src๋™์˜์ƒ ํŒŒ์ผ ๊ฒฝ๋กœ
poster๋™์˜์ƒ ์ค€๋น„ ์ค‘์— ํ‘œ์‹œ๋  ์ด๋ฏธ์ง€ ํŒŒ์ผ ๊ฒฝ๋กœ
preload์žฌ์ƒ ์ „์— ๋™์˜์ƒ ํŒŒ์ผ์„ ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ฌ ๊ฒƒ์ธ์ง€ ์ง€์ •
autoplay๋™์˜์ƒ ํŒŒ์ผ์„ ์ž๋™์˜ ์žฌ์ƒ ๊ฐœ์‹œํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •
loop๋™์˜์ƒ์„ ๋ฐ˜๋ณตํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •
controls๋™์˜์ƒ ์žฌ์ƒ ๋„๊ตฌ๋ฅผ ํ‘œ์‹œํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •. ์žฌ์ƒ ๋„๊ตฌ์˜ ์™ธ๊ด€์€ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.
width๋™์˜์ƒ์˜ ๋„ˆ๋น„๋ฅผ ์ง€์ •
height๋™์˜์ƒ์˜ ๋†’์ด๋ฅผ ์ง€์ •

audio ํƒœ๊ทธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŒŒ์ผ ํ˜•์‹์˜ ์ฐจ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. source ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜•์‹ ์ฐจ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. type ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค.

8. ํผ ํƒœ๊ทธ


8.1 form


form ํƒœ๊ทธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ input, textarea, button, select, checkbox, radio button, submit button ๋“ฑ์˜ ์ž…๋ ฅ ์–‘์‹ ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

attributeValue
actionURL ์ž…๋ ฅ ๋ฐ์ดํ„ฐ(form data)๊ฐ€ ์ „์†ก๋  URL ์ง€์ •
methodget / post ์ž…๋ ฅ ๋ฐ์ดํ„ฐ(form data) ์ „๋‹ฌ ๋ฐฉ์‹ ์ง€์ •

GET๊ณผ POST๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ HTTP request method๋ผ ํ•œ๋‹ค

GET

  • GET ๋ฐฉ์‹์€ ์ „์†ก URL์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์œผ๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค. (์ฟผ๋ฆฌ์ŠคํŠธ๋ง ์ด๋ž€? url ์ฃผ์†Œ์— ๋ฏธ๋ฆฌ ํ˜‘์˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ๋„˜๊ธฐ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.)
    ์˜ˆ) http://jsonplaceholder.typicode.com/posts?userId=1&id=1
  • ์ „์†ก URL ๋ฐ”๋กœ ๋’ค์— โ€˜?โ€™๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘์„ ์•Œ๋ ค์ฃผ๊ณ , key-valueํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 1๊ฐœ ์ด์ƒ์˜ - ์ „์†ก ๋ฐ์ดํ„ฐ๋Š” โ€˜&โ€™๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • URL์— ์ „์†ก ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ๋…ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค. (์ตœ๋Œ€ 255์ž).
  • REST API์—์„œ GET ๋ฉ”์†Œ๋“œ๋Š” ๋ชจ๋“  ๋˜๋Š” ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ ์กฐํšŒ๋ฅผ ์š”์ฒญํ•œ๋‹ค.

POST

  • POST ๋ฐฉ์‹์€ Request Body์— ๋‹ด์•„ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค.
    ์˜ˆ) http://jsonplaceholder.typicode.com/posts
  • URL์— ์ „์†ก ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ๋…ธ์ถœ๋˜์ง€ ์•Š์ง€๋งŒ GET์— ๋น„ํ•ด ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.
  • REST API์—์„œ POST ๋ฉ”์†Œ๋“œ๋Š” ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ ์ƒ์„ฑ์„ ์š”์ฒญํ•œ๋‹ค.
<form action="http://jsonplaceholder.typicode.com/users" method="get">
      ID: <input type="text" name="id" value="1"><br>
      username: <input type="text" name="username" value="Bret"><br>
      <input type="submit" value="Submit">
</form>

8.2 input


input ํƒœ๊ทธ๋Š” form ํƒœ๊ทธ ์ค‘์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํƒœ๊ทธ๋กœ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

input ํƒœ๊ทธ๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ type ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์— ์˜ํ•ด ๊ตฌ๋ถ„๋œ๋‹ค. form ํƒœ๊ทธ ๋‚ด์— ์กด์žฌํ•˜์—ฌ์•ผ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ajax๋ฅผ ์‚ฌ์šฉํ•  ์‹œ์—๋Š” form ํƒœ๊ทธ ๋‚ด์— ์กด์žฌํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

์„œ๋ฒ„์— ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” name ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ํ‚ค๋กœ, value ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ๊ฐ’์œผ๋กœํ•˜์—ฌ key=value์˜ ํ˜•ํƒœ๋กœ ์ „์†ก๋œ๋‹ค.

type์–ดํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ’
button๋ฒ„ํŠผ ์ƒ์„ฑ
checkboxcheckbox ์ƒ์„ฑ
color์ปฌ๋Ÿฌ ์„ ํƒ ์ƒ์„ฑ
datedate control (๋…„์›”์ผ) ์ƒ์„ฑ
datetimedate & time control (๋…„์›”์ผ์‹œ๋ถ„์ดˆ) ์ƒ์„ฑ. HTML spec์—์„œ drop๋˜์—ˆ๋‹ค.
datetime-local์ง€์—ญ date & time control
email์ด๋ฉ”์ผ ์ž…๋ ฅ form ์ƒ์„ฑ. subumit ์‹œ ์ž๋™ ๊ฒ€์ฆํ•œ๋‹ค.
fileํŒŒ์ผ ์„ ํƒ form ์ƒ์„ฑ
hidden๊ฐ์ถ”์–ด์ง„ ์ž…๋ ฅ form ์ƒ์„ฑ
image์ด๋ฏธ์ง€๋กœ ๋œ submit button ์ƒ์„ฑ
month์›” ์„ ํƒ form ์ƒ์„ฑ
number์ˆซ์ž ์ž…๋ ฅ form ์ƒ์„ฑ
passwordpassword ์ž…๋ ฅ form ์ƒ์„ฑ
radioradio button ์ƒ์„ฑ
range๋ฒ”์œ„ ์„ ํƒ form ์ƒ์„ฑ
reset์ดˆ๊ธฐํ™” button ์ƒ์„ฑ
search๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ form ์ƒ์„ฑ
submit์ œ์ถœ button ์ƒ์„ฑ
tel์ „ํ™”๋ฒˆํ˜ธ ์ž…๋ ฅ form ์ƒ์„ฑ
textํ…์ŠคํŠธ ์ž…๋ ฅ form ์ƒ์„ฑ
time์‹œ๊ฐ„ ์„ ํƒ form ์ƒ์„ฑ
urlurl ์ž…๋ ฅ form ์ƒ์„ฑ
week์ฃผ ์„ ํƒ ์ž…๋ ฅ form ์ƒ์„ฑ

8.3 select


๋ณต์ˆ˜๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ์—์„œ ๋ณต์ˆ˜๊ฐœ์˜ ์•„์ดํ…œ์„ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์„œ๋ฒ„์— ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” select ์š”์†Œ์˜ name ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ํ‚ค๋กœ, option ์š”์†Œ์˜ value ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ๊ฐ’์œผ๋กœํ•˜์—ฌ key=value์˜ ํ˜•ํƒœ๋กœ ์ „์†ก๋œ๋‹ค.

tagDescription
selectselect form ์ƒ์„ฑ
optionoption ์ƒ์„ฑ
optgroupoption์„ ๊ทธ๋ฃนํ™”ํ•œ๋‹ค
<select name="cars3">
      <optgroup label="Swedish Cars">
        <option value="volvo">Volvo</option>
        <option value="saab">Saab</option>
      </optgroup>
      <optgroup label="German Cars" disabled>
        <option value="mercedes">Mercedes</option>
        <option value="audi">Audi</option>
      </optgroup>
</select>

8.4 fieldset / legend


fieldset ํƒœ๊ทธ๋Š” ๊ด€๋ จ๋œ ์ž…๋ ฅ ์–‘์‹๋“ค์„ ๊ทธ๋ฃนํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. legend ํƒœ๊ทธ๋Š” fieldset ํƒœ๊ทธ ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜์•ผ ํ•˜๋ฉฐ ๊ทธ๋ฃนํ™”๋œ fieldset์˜ ์ œ๋ชฉ์„ ์ •์˜ํ•œ๋‹ค.

<fieldset>
        <legend>Login</legend>
        Username <input type="text" name="username">
        Password <input type="text" name="password">
</fieldset>

โค Reference


profile
front-end developer dreamer

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