๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/HTML5

ํผ, ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก

<Do it! HTML5+CSS3>์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

๋ชฉ์ฐจ

  • 1. ํผ ๋งŒ๋“ค๊ธฐ
  • 2. ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์œ„ํ•œ <input> ํƒœ๊ทธ
  • 3. ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ๋‚˜์—ดํ•ด ๋ณด์—ฌ ์ฃผ๊ธฐ

 

<Form>

  • ํผ์€ ๋Œ€ํ‘œ์ ์œผ๋กœ ์›น ์‚ฌ์ดํŠธ์˜ ๋กœ๊ทธ์ธ ํ™”๋ฉด์ด๋‚˜ ํšŒ์›๊ฐ€์ž…ํ•  ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด๋‹ค.
  • ํผ๊ณผ ๊ด€๋ จ๋œ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์€ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜, ๊ฒ€์ƒ‰, ์ˆ˜์ •ํ•˜๋Š” ์ผ์ธ๋ฐ ์ด๋Ÿฐ ์ž‘์—…์€ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.
  • ํผ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๊ทธ ๋‚ด์šฉ์ด ์›น ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์ง„๋‹ค. ๊ทธ๋Ÿผ ์„œ๋ฒ„๋Š” ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋‚ด ์˜จ ์ •๋ณด๋ฅผ ๋น„๊ตํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.
  • ํผ์˜ ํ…์ŠคํŠธ ์ƒ์ž๋‚˜ ๋ฒ„ํŠผ ๊ฐ™์€ ํ˜•ํƒœ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ HTMLํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜๊ณ  ๊ทธ ํผ์— ์ž…๋ ฅํ•œ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ASP๋‚˜ PHP, JSP ๊ฐ™์€ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ด์šฉํ•œ๋‹ค.

1. ํผ ๋งŒ๋“ค๊ธฐ

1) ํผ ์‚ฝ์ž…ํ•˜๊ธฐ - <form> ํƒœ๊ทธ

<form [์†์„ฑ="์†์„ฑ ๊ฐ’"]> ์—ฌ๋Ÿฌ ํผ ์š”์†Œ </form>

 

- <form>ํƒœ๊ทธ์™€ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ๋“ค

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ž๋ฃŒ๋ฅผ ์„œ๋ฒ„๋กœ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋„˜๊ธธ์ง€, ์„œ๋ฒ„์—์„œ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ด ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
method ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋‚ด์šฉ๋“ค์„ ์„œ๋ฒ„ ์ชฝ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋„˜๊ฒจ์ค„์ง€ ์ง€์ •ํ•œ๋‹ค.

์†์„ฑ ๊ฐ’
get : ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋‚ด์šฉ์ด ๊ทธ๋Œ€๋กœ ๋“œ๋Ÿฌ๋‚˜๊ณ , ์ž…๋ ฅ ๋‚ด์šฉ์˜ ๊ธธ์ด๊ฐ€ ์ œํ•œ(256byte~4096byte)๋œ๋‹ค.
post : ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ๋„˜๊ฒจ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ ๋‚ด์šฉ์˜ ๊ธธ์ด์— ์ œํ•œ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋‚ด์šฉ์ด ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€๋ถ€๋ถ„ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
name ํผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค.
action <form>ํƒœ๊ทธ ์•ˆ์˜ ๋‚ด์šฉ๋“ค์„ ์ฒ˜๋ฆฌํ•ด ์ค„ ์„œ๋ฒ„ ์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ง€์ •ํ•œ๋‹ค.
target <action>ํƒœ๊ทธ์—์„œ ์ง€์ •ํ•œ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ํ˜„์žฌ ์ฐฝ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์œ„์น˜์— ์—ด๋ฆฌ๋„๋ก ์ง€์ •ํ•œ๋‹ค.

+) autocomplete์†์„ฑ - ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ

์ด ์†์„ฑ์„ ์ด์šฉํ•ด ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์ด๋ž€ ๊ฒ€์ƒ‰์ฐฝ์ด๋‚˜ ๋กœ๊ทธ์ธ ์ฐฝ์— ๋‚ด์šฉ์„ ์ž…๋ ฅํ•  ๋•Œ ์ด์ „์— ์ž…๋ ฅํ–ˆ๋˜ ๋‚ด์šฉ์ด ์•„๋ž˜์— ํ‘œ์‹œ๋˜๋Š” ๊ธฐ๋Šฅ์„ ๋งํ•œ๋‹ค.

 

 

2) ํผ ์š”์†Œ์— ๋ ˆ์ด๋ธ” ๋ถ™์ด๊ธฐ - <label>ํƒœ๊ทธ

๋ ˆ์ด๋ธ”์ด๋ž€ ์•„๋ž˜ ๊ทธ๋ฆผ์˜ ์•„์ด๋””๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ฒ˜๋Ÿผ ์ž…๋ ฅ ์ฐฝ ์˜†์— ๋ถ™์—ฌ ๋†“์€ ํ…์ŠคํŠธ๋ฅผ ๋งํ•œ๋‹ค. <label>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํผ ์š”์†Œ์™€ ๋ ˆ์ด๋ธ” ํ…์ŠคํŠธ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋ ˆ์ด๋ธ”์„ ์ด์šฉํ•˜๋ฉด ์ฒดํฌ๋ฐ•์Šค์—์„œ ํ…์ŠคํŠธ๋งŒ ์„ ํƒํ•ด๋„ ์ฒดํฌ ๋ฐ•์Šค ๋ฒ„ํŠผ์ด ์„ ํƒ๋  ์ˆ˜ ์žˆ์–ด ํŽธ๋ฆฌํ•˜๋‹ค.

<label [์†์„ฑ="์†์„ฑ ๊ฐ’"]> ๋ ˆ์ด๋ธ” <input ...> </label>

๋˜๋Š”

<label for="id์ด๋ฆ„"> ๋ ˆ์ด๋ธ” </label>
<input id="id์ด๋ฆ„" [์†์„ฑ="์†์„ฑ ๊ฐ’"]>

 

 

3) ํผ ์š”์†Œ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ๊ธฐ - <fieldset>, <legend>ํƒœ๊ทธ

<fieldset> ํƒœ๊ทธ๋กœ ํผ ์š”์†Œ๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ๊ณ  <legend>ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด ๊ทธ๋ฃน์— ์ œ๋ชฉ์„ ๋ถ™์—ฌ์ฃผ๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๊ฐ€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ์—๋„ ํŽธ๋ฆฌํ•˜๊ณ  ํ™”๋ฉด๋„ ๊น”๋”ํžˆ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

<form>
  <fieldset>
    <legend> ๋กœ๊ทธ์ธ ์ •๋ณด </legend>
    <ul>
      <li>
        <label for="id">์•„์ด๋””</label>
        <input type="text" id="id">
      </li>
      <li>
        <label for="pwd">๋น„๋ฐ€๋ฒˆํ˜ธ</label>
        <input type="text" id="pwd">
      </li>
    </ul>
  </fieldset>
</form>

 

 

2. ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์œ„ํ•œ <input> ํƒœ๊ทธ

1) ์ž…๋ ฅ ํ•ญ๋ชฉ ๋งŒ๋“ค๊ธฐ - <input>ํƒœ๊ทธ

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๋ถ€๋ถ„์„ ๋งŒ๋“ค ๋•Œ <input>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

<input type="์œ ํ˜•" id="์•„์ด๋””" [๊ธฐํƒ€์†์„ฑ="์†์„ฑ ๊ฐ’"]>

 

- type์†์„ฑ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†์„ฑ๊ฐ’

 

- <input>ํƒœ๊ทธ์™€ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ๋“ค

์†์„ฑ ์„ค๋ช…
autofocus ์ž…๋ ฅ ์ปค์„œ ํ‘œ์‹œํ•˜๊ธฐ
placeholder ํžŒํŠธ ํ‘œ์‹œํ•˜๊ธฐ
readonly ์ฝ๊ธฐ ์ „์šฉ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ
required ํ•„์ˆ˜ ํ•„๋“œ(ํ•„์ˆ˜๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ) ์ง€์ •
min, max, step ํ•ด๋‹น ํ•„๋“œ์˜ ์ตœ๋Œ€,์ตœ์†Œ๊ฐ’ ์ง€์ •ํ•˜๊ธฐ
size, minlength, maxlength ๊ธธ์ด, ์ตœ์†Œ๊ธธ์ด, ์ตœ๋Œ€๊ธธ์ด ์ง€์ •ํ•˜๊ธฐ

 


3. ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ๋‚˜์—ดํ•ด ๋ณด์—ฌ ์ฃผ๊ธฐ

1) ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก ๋งŒ๋“ค๊ธฐ - <select>, <option>ํƒœ๊ทธ

๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์€ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ์˜ต์…˜ ์ค‘์—์„œ ์„ ํƒํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ์„ ๋–„ ์‚ฌ์šฉํ•œ๋‹ค.

๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์€ <select>ํƒœ๊ทธ๋กœ ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์˜ ์‹œ์ž‘๊ณผ ๋์„ ํ‘œ์‹œํ•˜๊ณ  ๊ทธ ์•ˆ์— <option>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด ์›ํ•˜๋Š” ํ•ญ๋ชฉ๋“ค์„ ์ถ”๊ฐ€ํ•œ๋‹ค. <option>ํƒœ๊ทธ์—๋Š” value์†์„ฑ์„ ์ด์šฉํ•ด ์„œ๋ฒ„๋กœ ๋„˜๊ฒจ์ฃผ๊ธฐ ์œ„ํ•œ ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค.

<optgroup>ํƒœ๊ทธ : ์—ฌ๋Ÿฌ๊ฐœ์˜ <option>ํƒœ๊ทธ๋“ค์„ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค.

<select>
  <option value="๊ฐ’" [์†์„ฑ="์†์„ฑ๊ฐ’"]> ๋‚ด์šฉ1 </option>
  <option value="๊ฐ’" [์†์„ฑ="์†์„ฑ๊ฐ’"]> ๋‚ด์šฉ2 </option>
  <option value="๊ฐ’" [์†์„ฑ="์†์„ฑ๊ฐ’"]> ๋‚ด์šฉ3 </option>
  ...
</select>

 

- <select>, <option>ํƒœ๊ทธ์™€ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ๋“ค

<select>ํƒœ๊ทธ์™€ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ ์„ค๋ช…
size ํ™”๋ฉด์— ํ‘œ์‹œ๋  ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์˜ ํ•ญ๋ชฉ ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•œ๋‹ค.
multiple ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์˜ต์…˜์ด ํ•จ๊ป˜ ํ‘œ์‹œ๋˜๋ฉด์„œ ctrlํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ๋กœ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.
<option>ํƒœ๊ทธ์™€ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ ์„ค๋ช…
value ์˜ต์…˜์„ ์„ ํƒํ–ˆ์„ ๋•Œ ์„œ๋ฒ„๋กœ ๋„˜๊ฒจ์งˆ ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค.
selected ํ™”๋ฉด์— ํ‘œ์‹œ๋  ๋•Œ ๊ธฐ๋ณธ์œผ๋กœ ์„ ํƒ๋˜์–ด ์žˆ๋Š” ์˜ต์…˜์„ ์ง€์ •ํ•œ๋‹ค.

 

 

2) ๋ฐ์ดํ„ฐ ๋ชฉ๋ก ์ค‘์—์„œ ๊ฐ’ ์„ ํƒํ•˜๋Š” ๋ชฉ๋ก ๋งŒ๋“ค๊ธฐ - <datalist>, <option>ํƒœ๊ทธ

ํ…์ŠคํŠธ ํ•„๋“œ์— ์ง์ ‘ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ œ์‹œํ•œ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก ๊ฐ’ ์ค‘์—์„œ ์„ ํƒํ•˜๋„๋ก ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ <select>ํƒœ๊ทธ ๋Œ€์‹  <datalist>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

<input type="text" list="๋ฐ์ดํ„ฐ ๋ชฉ๋ก id">
  <datalist>
    <option> ๊ฐ’1 </option>
    <option> ๊ฐ’2 </option>
    <option> ๊ฐ’3 </option>
    ...
  </datalist>

 

- <option>ํƒœ๊ทธ์™€ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ๋“ค

์†์„ฑ ์„ค๋ช…
value ์‚ฌ์šฉ์ž๊ฐ€ ๋ ˆ์ด๋ธ”์„ ์„ ํƒํ–ˆ์„ ๋•Œ ์„œ๋ฒ„๋กœ ๋„˜๊ฒจ์งˆ ๊ฐ’์„ ์ง€์ •
label - ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œํ•  ๋ ˆ์ด๋ธ”
- ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, value ๊ฐ’์„ ๋ ˆ์ด๋ธ”๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

3) ์—ฌ๋Ÿฌ ์ค„ ์ž…๋ ฅํ•˜๋Š” ํ…์ŠคํŠธ ์˜์—ญ ๋งŒ๋“ค๊ธฐ - <textarea>ํƒœ๊ทธ

<textarea>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ค„์˜ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์˜์—ญ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

<textarea [์†์„ฑ="์†์„ฑ ๊ฐ’"]> ๋‚ด์šฉ </textarea>

 

- <textarea>ํƒœ๊ทธ์™€ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ๋“ค

์†์„ฑ ์„ค๋ช…
name ๋‹ค๋ฅธ ํผ ์š”์†Œ์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ํ…์ŠคํŠธ ์˜์—ญ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•œ๋‹ค.
cols ํ…์ŠคํŠธ ์˜์—ญ์˜ ๊ฐ€๋กœ ๋„ˆ๋น„๋ฅผ ๋ฌธ์ž ๋‹จ์œ„๋กœ ์ง€์ •ํ•œ๋‹ค.
rows ํ…์ŠคํŠธ ์˜์—ญ์˜ ์„ธ๋กœ ๊ธธ์ด๋ฅผ ์ค„ ๋‹จ์œ„๋กœ ์ง€์ •ํ•œ๋‹ค. ์ง€์ •ํ•œ ์ˆซ์ž๋ณด๋‹ค ์ค„ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์Šคํฌ๋กค ๋ง‰๋Œ€๊ฐ€ ์ƒ๊ธด๋‹ค.