FE/HTML,CSS

[HTML] formํƒœ๊ทธ

mandelina 2022. 4. 5. 03:04

๐Ÿš€ Formํƒœ๊ทธ

- ์ด์ „๊ธ€์—์„œ ๊ฐ„๋‹จํ•œ form์˜ ๋™์ž‘์›๋ฆฌ๋ฅผ ๋ณด์•˜๋‹ค๋ฉด ์ด ๊ธ€์—์„  ํƒœ๊ทธ๋ฅผ ์‚ดํŽด๋ณด์ž.

 

 

 

๐Ÿฅฒ <form>์˜ ์†์„ฑ

- action : ์ž…๋ ฅ ๊ฐ’์„ ์ „์†กํ•  ํŽ˜์ด์ง€

- method : ํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋ฐฉ๋ฒ• , get๊ณผ post๊ฐ€ ์žˆ๋‹ค.

 

 

 

๐Ÿฅฒ get vs post?

 

get

post

๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์‹ค๋ฆฌ๋Š”๊ฐ€ http ํ—ค๋”์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋“œ๋Ÿฌ๋‚œ๋‹ค. http ๋ฐ”๋””์— ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์–ด ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์™ธ์ ์œผ๋กœ ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š๋Š”๋‹ค.
๋ฐ์ดํ„ฐ์˜ ์–‘ ์„œ๋ฒ„์— ์ž์›์„ ์œ„ํ•œ ํ‚ค์›Œ๋“œ๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๊ฒฝ๋กœ์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ์ „์†กํ•œ๋‹ค. ์„œ๋ฒ„์—์„œ ์ž‘์—…ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ค˜์•ผํ•œ๋‹ค.
๋ฉฑ๋“ฑ์„ฑ ๋ณด์žฅ
(์ž์›์˜ ์š”์ฒญ์ด๋ฏ€๋กœ ์„œ๋ฒ„์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.)
๋ณด์žฅX
(๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•ด์„œ ํŠน์ • ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ณผ๊ฐ€ ์š”์ฒญ๋งˆ๋‹ค ๋‹ฌ๋ผ์งˆ์ˆ˜ ์žˆ๋‹ค.)

 


 

๐Ÿฅฒ input :  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค.

 

input์˜ ์†์„ฑ 

type, name, readonly, minlength,maxlength , required , autofocus , placeholder ,pattern์ด ์žˆ๋‹ค.

 

- input ํƒ€์ž…

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>form</title>
    </head>
    <body>
        <input type="text"><br>
        <input type="password"><br>
        <input type="date"><br>
        <input type="time"><br>
        <input type="range"><br>
        <input type="color"><br>
        <input type="radio"><br>
        <input type="checkbox"><br>
        <input type="file"><br>
        <textarea name="name" rows="8" cols="80"></textarea>
    </body>
</html>

 

* ์จ๋ณด๋ฉด์„œ ๋Š๊ปด๋ณด์„ธ์š”!

form








 

 

๐Ÿฅฒ button 

- button type

- submit :  ๊ธฐ๋ณธ๊ฐ’ , ์„œ๋ฒ„๋กœ ์–‘์‹ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์ถœ

- reset :   form์˜ ๋ชจ๋“ ๊ฐ’์„ ์ดˆ๊ธฐํ™”

 

 

 

Q . ์™œ type์„ ์ง€์ •ํ•ด์ค˜์•ผํ• ๊นŒ?

A.

 

 ์–ด์ฐจํ”ผ ๊ฐ™์€ inputํƒœ๊ทธ ์•ˆ์— ๊ธ€์ด ์จ์ง€๋Š”๊ฑด ๋งˆ์ฐฌ๊ฐ€์ง€์ธ๋ฐ ์™œ type์„ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ• ๊นŒ?

 ๋ฐ”๋กœ  "์‚ฌ์šฉ์ž๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•จ" ์ด๋‹ค.

 ๋งŒ์•ฝ email ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š”๋ฐ @๊ฐ€ ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ ํ˜•์‹์ด ์ž˜๋ชป๋œ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!!

 

 

 

Q. input๊ณผ button ์ค‘ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ?

A.

button์š”์†Œ๋Š” input๋ณด๋‹ค ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ธฐ ์ˆ˜์›”ํ•˜๋‹ค. 

(input ํƒœ๊ทธ๋Š” ๋‹ซ๋Š”ํƒœ๊ทธ๊ฐ€ ์—†์–ด value ๊ฐ’๋ฐ–์— ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.)

 

๋”ํ•ด์„œ ๊ฐ€์ƒ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๊ธฐ์— ๋” ๋ฉ‹์ง„ ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค๋ฉด <button>์š”์†Œ๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ๊ณ ๋ คํ•ด๋ณด๋Š”๊ฒƒ์ด ์ข‹๋‹ค.

 


 

๐Ÿฅฒ label : inputํƒœ๊ทธ๋ฅผ ์„ค๋ช…ํ•œ๋‹ค.

 

์‚ฌ์šฉ๋ฒ• 1 ) ํ…์ŠคํŠธ ์„ค๋ช…๊ณผ ํผ ์ž…๋ ฅ ๋ชจ๋‘ ํฌํ•จ

<label>
	์ด๋ฆ„ :
	<input type="text" name="name">
</label>

 

์‚ฌ์šฉ๋ฒ• 2 ) ํผ ์ž…๋ ฅ์„ ๋ถ„๋ฆฌํ•˜์—ฌ for ์†์„ฑ์„ ์ด์šฉํ•ด ๋ ˆ์ด๋ธ” ์ง€์ •

<label for="myName">์ด๋ฆ„ : </label>
<input type="text" name="name" id="myName">

 

 

 


 

๐Ÿฅฒ select : ๋“œ๋กญ๋‹ค์šด ๋ฆฌ์ŠคํŠธ๋ฐ•์Šค ์ƒ์„ฑ

 

<form action="">
  <label for="myDevice">ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์Šค๋งˆํŠธํฐ์˜ ์ œ์กฐ์‚ฌ๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”</label>
  <select name="device" id="myDevice">
    <option value="iphone">์•„์ดํฐ</option>
    <option value="galaxy">๊ฐค๋Ÿญ์‹œํฐ</option>
    <option value="ใ…œใ…œ">LGํฐ</option>
  </select>
</form>

 

- selection ์†์„ฑ 

mutiple : ์—ฌ๋Ÿฌ๊ฐœ option ์„ ํƒํ• ์ˆ˜ ์žˆ๋„๋ก ํ•ด์คŒ

size : option๊ฐœ์ˆ˜ ์กฐ์ ˆ

 

- option ์†์„ฑ

value : ์„œ๋ฒ„์— ์ „์†กํ•  ๊ฐ’

selected : ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋”ฉ๋˜๊ณ  ๋‚œ ํ›„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒ๋˜๋Š” ์˜ต์…˜

 

 


 

๐Ÿฅฒ fieldset : ํผ ์ปจํŠธ๋กค๋“ค์„ ๊ทธ๋ฃนํ™”

- ํผ๋‚ด์šฉ์ด ๋ฐฉ๋Œ€ํ•˜์—ฌ ์„น์…˜๋ณ„๋กœ ๋‚˜๋ˆŒ ํ•„์š”์„ฑ์ด ์žˆ์„๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค. (๋ฌธ์ œ๋ณ„๋กœ ๋‚˜๋ˆ ๋„ ๋˜๊ณ , ์ „์ฒด๋ฌธ์ œ๋กœ ๋ฌถ์–ด๋„ ๋œ๋‹ค!)

 

<!-- ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์„ธ์š” -->
<form action="">
  <fieldset>
    <legend>๊ฐœ์ธ์ •๋ณด</legend>
    <label for="myName">์ด๋ฆ„</label>
    <input type="text" name="name" id="myName">
    <label for="myTel">์ „ํ™”๋ฒˆํ˜ธ</label>
    <input type="tel" name="tel" id="myTel">
    <label for="myEmail">์ด๋ฉ”์ผ</label>
    <input type="email" name="email" id="myEmail">
  </fieldset>
  <fieldset>
    <legend>๊ฐœ์ธ์ •๋ณด ์ œ๊ณต ๋™์˜</legend>
    <label for="checkAgree">๊ฐœ์ธ์ •๋ณด ์ œ๊ณต์— ๋™์˜ํ•˜์‹ญ๋‹ˆ๊นŒ?</label>
    <input type="checkbox" name="agree" id="checkAgree">
  </fieldset>
</form>

 

๊ฐœ์ธ์ •๋ณด
๊ฐœ์ธ์ •๋ณด ์ œ๊ณต ๋™์˜

- legend :  fieldset ํƒœ๊ทธ ๋ฐ”๋กœ ๋’ค์— ์œ„์น˜ํ•˜๋ฉฐ, ํผ ๊ทธ๋ฃน ๋ชฉ์ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ œ๋ชฉ์„ ์˜๋ฏธํ•œ๋‹ค.

 

 


 

๐Ÿฅฒ  <textarea> : ์—ฌ๋Ÿฌ์ค„์˜ text๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ

 

cols : textarea๊ฐ€ ๋ณด์—ฌ์ค„ ์ž…๋ ฅ์ฐฝ์˜ ๋„“์ด / ๊ธฐ๋ณธ๊ฐ’ : 20

rows : textarea ์ž…๋ ฅ ์ฐฝ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ์ค„ ์ˆ˜

 

 

<textarea name="" id="" cols="40" rows="10" maxlength="10" minlength="5"></textarea>

 

 

 

 

 


 

๐Ÿฅฒ  <datalist> : select์™€ input์„ ์„ž์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

 

- input์˜ list์†์„ฑ๊ณผ datalist์š”์†Œ์˜ id์†์„ฑ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

 

- ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜๊ณผ ๋งŒ์•ฝ ์„ ํƒํ•˜๊ณ  ์‹ถ์€ ๊ฐ’์ด ์—†์œผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ž„์˜์˜ ๊ฐ’์„ ์ž…๋ ฅ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณต

<label for="solasystem">์›ํ•˜๋Š” ํ–‰์„ฑ์„ ์„ ํƒํ•˜์„ธ์š” : </label>
<input type="text" id="solasystem" list="planets" name="planets">
<datalist id="planets">
    <option value="์ˆ˜์„ฑ">์ˆ˜์„ฑ</option>
    <option value="๊ธˆ์„ฑ">๊ธˆ์„ฑ</option>
    <option value="์ง€๊ตฌ">์ง€๊ตฌ</option>
    <option value="ํ™”์„ฑ">ํ™”์„ฑ</option>
</datalist>

 

 

๐ŸŒˆ๊ทธ๋ฐ–์—

- ์ฝ”๋“œ ์ž‘์„ฑ์‹œ class ๋ช…์„ ํ™•์‹คํžˆ ํ•˜์ž

- SEO (๊ฒ€์ƒ‰์—”์ง„์ตœ์ ํ™”)

- pํƒœ๊ทธ ์Šคํฌ๋กค๋กœ ๋งŒ๋“œ๋Š” ๋ฒ• : overflow : scroll

 

 

๐Ÿ”ฅ ํšŒ๊ณ 

์˜ค์ „์‹œ๊ฐ„์€ ๋ฉ”์ด์ปค์ค€๋‹˜๊ณผ ํšŒ๊ณ ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ํšŒ๊ณ ๋ฅผ ํ•˜๋ฉฐ ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๋ถˆ์•ˆ,๊ฑฑ์ • ์—ญ์‹œ ๋‹ค๋ฅธ๋ถ„๋“ค๋„ ๊ฐ™์€๊ฒƒ์„ ๋Š๊ผˆ๋‹ค. 4๊ฐœ์›”๊ฐ„ ์กฐ๊ธ‰ํ•ดํ•˜์ง€ ์•Š๊ณ  ํ•˜๋ฃจํ•˜๋ฃจ ์˜๋ฏธ์žˆ๊ฒŒ ๋ณด๋‚ด๋ฉด 4๊ฐœ์›”์ด ์ง€๋‚œ ํ›„ ์„ฑ์žฅ๋œ ๋‚˜์˜ ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ ๊ธฐ๋Œ€ํ•œ๋‹ค.

 

์˜คํ›„์‹œ๊ฐ„์€ ์‚ผ์„ฑ,๋„ค์ด๋ฒ„,๋™๋ฌผ์˜์ˆฒ ์›นํŽ˜์ด์ง€ ํ‹€์„ ๋‚˜๋ˆ„์–ด ๋ณด๊ณ  html formํƒœ๊ทธ๋“ค์„ ๋ฐฐ์› ๋‹ค.

htmlํƒœ๊ทธ๋“ค์„ ๋ฐฐ์šฐ๋ฉด์„œ ๋Š๋ผ๋Š” ์ ์€ '๋‚ด๊ฐ€ htmlํƒœ๊ทธ์— ์ด๋ฆฌ ์ƒ์„ธํ•˜๊ฒŒ ๊ด€์‹ฌ์„ ๊ฐ€์ง„์ ์ด ์žˆ๋˜๊ฐ€?' ์˜€๋‹ค. ์ „์—๋Š” ๋‹จ์ˆœํžˆ ํ•œ๋ฒˆ ์ณ๋ณด๊ณ  ๋๋ƒˆ๋‹ค๋ฉด, ์ง€๊ธˆ์€ ๋ฉ‹์‚ฌ 2๊ธฐ๋ถ„๋“ค๊ณผ ํ•จ๊ป˜ ๋™์ž‘์›๋ฆฌ ๋ฐ ์›น์ ‘๊ทผ์„ฑ,์›นํ‘œ์ค€๋“ฑ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์„ ๊ฐ€์ง€๋ฉฐ ์ฝ”๋”ฉ์„ ํ•˜๋Š” ๋‚ด ๋ชจ์Šต์— ๋ฟŒ๋“ฏํ–ˆ๋‹ค.

 

๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”ํ•œ๊ฑด, ํ•ญ์ƒ ์ฝ”๋”ฉํ• ๋•Œ ์™œ ์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์„๊นŒ์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์ฐพ์œผ๋ฉฐ ์ฝ”๋”ฉํ•˜๊ธฐ!!

 

'FE > HTML,CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[css] reset css | Vendor-Prefix | Selector์šฐ์„ ์ˆœ์œ„  (4) 2022.04.06
[HTML] table | inline vs block  (0) 2022.04.05
[HTML] Text-level semantics  (0) 2022.03.30
[HTML] Grouping Content | HTML Living Standard  (0) 2022.03.29
[HTML] HTMLํƒœ๊ทธ  (0) 2022.03.28