-
[HTML] ํผ ๊ด๋ จ ํ๊ทธ์ ์์ - 2๐ FrontEnd/HTML & CSS 2022. 5. 16. 20:13
ํผ ๊ด๋ จ ํ๊ทธ๋ค
ํผ๊ณผ ๊ด๋ จ๋ ํ๊ทธ๋ค์ ๊ณต๋ถํด๋ด ์๋ค.
3. <input> ํ๊ทธ์ ๋ค์ํ ์์ฑ
(1) autofocus ์์ฑ - ์ ๋ ฅ ์ปค์ ํ์ํ๊ธฐ
- ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค์๋ง์ ์ํ๋ ์์์ ๋ง์ฐ์ค ์ปค์๊ฐ ํ์๋๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
- ์ด์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ง๋ง, HTML5 ์์ autofocus ์์ฑ์ผ๋ก ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๊ฒ ๋์์ต๋๋ค.
(2) placeholder ์์ฑ - ํํธ ํ์ํ๊ธฐ
- <input> ์์์ ํ๋ ์์ ์ ๋นํ ํํธ ๋ด์ฉ์ ํ์ํ๊ณ ์๋ค๊ฐ ๊ทธ ํ๋๋ฅผ ํด๋ฆญํ๋ฉด ๋ด์ฉ์ด ์ฌ๋ผ์ง๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
- ํ ์คํธ ํ๋ ์์ ๋ ์ด๋ธ์ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ด๋ค ๋ด์ฉ์ ์ ๋ ฅํด์ผ ํ ์ง ์๋ ค์ค ์ ์์ต๋๋ค.
(3) readonly ์์ฑ - ์ฝ๊ธฐ ์ ์ฉ ํ๋ ๋ง๋ค๊ธฐ
- readonly ์์ฑ์ ํด๋น ํ๋๋ฅผ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
- ํ๋ ์์ ๋ด์ฉ์ด ์์ผ๋ฉด์ ์ฌ์ฉ์์๊ฒ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๊ธฐ๋ง ํ๊ณ ์ฌ์ฉ์๊ฐ ์ ๋ ฅ์ ํ ์ ์๊ฒ ํฉ๋๋ค.
- ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ํ๋ ค๋ฉด readonly="true" ๋๋ readonly ๋ฅผ ํ๋ฉด ๋ฉ๋๋ค.
(4) required ์์ฑ - ํ์ ํ๋ ์ง์ ํ๊ธฐ
- [submit] ๋จ์ถ๋ฅผ ํด๋ฆญํด์ ์๋ฒ๋ก ํผ์ ์ ์กํ ๋ ํ์ ํ๋์ ํ์ํ ๋ด์ฉ์ด ๋ชจ๋ ์ฑ์์ก๋์ง ๊ฒ์ฌํฉ๋๋ค.
- ์ด์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ง๋ง, HTML5 ์์ required ์์ฑ์ผ๋ก ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๊ฒ ๋์์ต๋๋ค.
(5) min, max, step ์์ฑ
- min ์์ฑ๊ณผ max ์์ฑ์ ๊ฐ๊ฐ ํด๋น ํ๋์ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ์ง์ ํฉ๋๋ค.
- step ์์ฑ์ ํ์ฉ๋ ๋ฒ์ ๋ด์ ์ซ์์ ์ผ์ ํ ๊ฐ๊ฒฉ์ ๊ฐ๋ฆฌํต๋๋ค.
(1) ~ (5) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>์์ฑ ํํค์น๊ธฐ</title> <style> form fieldset { margin-bottom: 25px; } form legend { font-size: 20px; font-weight: 600; } form label.reg { font-size: 15px; width: 120px; color: gray; float: left; text-align: right; margin-right: 10px; } form ul li { list-style: none; margin: 15px 0; } </style> </head> <body> <h2>์์ ์ ์ฒญ</h2> <form> <fieldset id="subject"> <legend>๊ณผ๋ชฉ</legend> <ul> <li> <label class="reg" for="subj">์น ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด</label> <input type="text" id="subj" value="์ค์ 9:00 - 11:00" readonly> </li> </ul> </fieldset> <fieldset id="register"> <legend>์ ์ฒญ์</legend> <ul> <li> <label class="reg" for="uname">์ด๋ฆ</label> <input type="text" id="uname" autofocus required> </li> <li> <label class="reg" for="uid">์์ด๋</label> <input type="text" id="uid" placeholder="abc@murphy.com" maxlength="20" required> </li> <li> <label class="reg" for="state">ํ์ฌ ์ง์ </label> <select id="state"> <option value="adolescent">์ฒญ์๋ </option> <option value="university">๋ํ์(๋ํ์์ ํฌํจ)</option> <option value="adult">์ฑ์ธ ์ทจ์ค์</option> <option value="workers">์ง์ฅ์ธ</option> </select> </li> </ul> </fieldset> <fieldset> <legend>๊ต์ฌ ์ฃผ๋ฌธ</legend> <ul> <li> <label class="reg" for="book">๊ต์ฌ</label> <input type="number" id="book" value="1" min="1" max="5"> </li> <li> <label class="reg" for="groupbook">๋จ์ฒด ์ฃผ๋ฌธ</label> <input type="number" id="groupbook" value="10" min="1" max="100" step="10"> </li> </ul> </fieldset> <fieldset> <button type="submit" value="submit">์ ์ฒญํ๊ธฐ</button> <button type="reset" value="reset">๋ค์์ฐ๊ธฐ</button> </fieldset> </form> </body> </html>
(6) size, minlength, maxlength ์์ฑ - ๊ธธ์ด, ์ต์ ๊ธธ์ด, ์ต๋ ๊ธธ์ด ์์ฑ
(6) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>ํ์ ๊ฐ์ </title> <style> ul li { list-style: none; margin-bottom: 10px; } </style> </head> <body> <h3>ํ์ ๊ฐ์ </h3> <form> <ul> <li><label>์์ด๋ : <input type="text" id="user_id" size="10" minlength="4" maxlength="15"></label><small>4~15์๋ฆฌ ์ด๋ด์ ์๋ฌธ๊ณผ ์ซ์</small></li> <li><label>์ด๋ฉ์ผ : <input type="email" id="user_email"></label></li> <li><label>๋น๋ฐ๋ฒํธ : <input type="password" id="user_pwd"></label></li> <li><label>๋น๋ฐ๋ฒํธ ํ์ธ : <input type="password" id="check_pwd"></label></li> <li><input type="submit" value="ํ์๊ฐ์ "></li> </ul> </form> </body> </html>
4. ์ฌ๋ฌ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๋์ดํด์ ๋ณด์ฌ์ฃผ๊ธฐ
(1) <select>, <optgroup>, <option> ํ๊ทธ - ๋๋กญ๋ค์ด ๋ชฉ๋ก ๋ง๋ค๊ธฐ
- ๊ณต๊ฐ์ ์ต๋ํ ์ ๊ฒ ์ฌ์ฉํ๋ฉด์ ์ฌ๋ฌ ๊ฐ์ง ์ต์ ์ ํ์ํ๋ ๋๋กญ๋ค์ด ๋ชฉ๋ก์ ๋ง๋ญ๋๋ค.
- <select> ํ๊ทธ์ ์์ฑ : size ์์ฑ์ด๋ multiple ์์ฑ์ ์ด์ฉํ๋ฉด ๋๋กญ๋ค์ด ๋ชฉ๋ก์ ํฌ๊ธฐ๋ ์ ํํ ํญ๋ชฉ์ ๊ฐ์๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
- <option> ํ๊ทธ์ ์์ฑ : value ์์ฑ, selected ์์ฑ ์ ๋๋ค.
- <optgroupt> ํ๊ทธ : ์ต์ ๋ผ๋ฆฌ ๋ฌถ์ด์ฃผ๋ ์์ฑ์ ๋๋ค.
- ๊ธฐ๋ณธํ : <select ์์ฑ="์์ฑ ๊ฐ">
- <option value="๊ฐ" [์์ฑ="์์ฑ ๊ฐ"]> ๋ด์ฉ1 </option>
- <option value="๊ฐ" [์์ฑ="์์ฑ ๊ฐ"]> ๋ด์ฉ2 </option>
- <option value="๊ฐ" [์์ฑ="์์ฑ ๊ฐ"]> ๋ด์ฉ3 </option>
- </select>
(1) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>๋ชฉ๋ก</title> <style> ul li { list-style: none; margin-bottom: 10px; } </style> </head> <body> <h3>๋ชฉ๋ก ์ค ํด๋น๋๋ ๊ฒ์ ์ ํํด์ฃผ์ธ์</h3> <form> <fieldset> <legend>์ ํํ๊ธฐ</legend> <ul> <li> <label for="state">ํ์ฌ ์ํ</label> <select id="state"> <option value="very_happy">๋งค์ฐ ํ๋ณต</option> <option value="happy">ํ๋ณต</option> <option value="soso">๋ณดํต</option> <option value="sad">์ฌํ</option> <option value="very_sad">๋งค์ฐ ์ฌํ</option> </select> </li> </ul> </fieldset> </form> </body> </html>
(2) <datalist>, <option> ํ๊ทธ
- ํ ์คํธ ํ๋์ ์ ๋ ฅํ ์ ์๋ ๊ฐ๋ค์ ๋ชฉ๋ก ํํ๋ก ์ ์ํฉ๋๋ค.
- ํ ์คํธ ํ๋์ ์ง์ ๊ฐ์ ์ ๋ ฅํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ํ ๊ฐ ์ค์์ ์ ํํ๋ฉด ์๋์ผ๋ก ์ ๋ ฅ๋ฉ๋๋ค.
- ๊ธฐ๋ณธํ : <input type="text" list="๋ฐ์ดํฐ ๋ชฉ๋ก id">
- <datalist id="๋ฐ์ดํฐ ๋ชฉ๋ก id">
- <option> ... </option>
- <option> ... </option>
- ...
- </datalist>
(2) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>์ค๋ฌธ ์กฐ์ฌ</title> </head> <body> <h3>์ค๋ฌธ ์กฐ์ฌ</h3> <fieldset> <legend>๊ฐ์ธ ์ ๋ณด</legend> <ul> <li> <label for="class">ํ๊ณผ</label> <select id="class"> <optgroup label="๊ณต๊ณผ๋ํ"> <option value="archi">๊ฑด์ถ๊ณตํ๊ณผ</option> <option value="mechanic">๊ธฐ๊ณ๊ณตํ๊ณผ</option> <option value="elec">์ ๊ธฐ์ ์๊ณตํ๊ณผ</option> <option value="computer">์ปดํจํฐ๊ณตํ๊ณผ</option> <option value="chemical">ํํ๊ณตํ๊ณผ</option> </optgroup> <optgroup label="์ธ๋ฌธ๋ํ"> <option value="history">์ฌํ๊ณผ</option> <option value="philo">์ฒ ํ๊ณผ</option> <option value="lang">์ด๋ฌธํ๋ถ</option> </optgroup> </select> </li> </ul> </fieldset> <fieldset> <legend>๊ด์ฌ ์ง๋ก ์ ํ</legend> <ul> <li> <span>๊ด์ฌ ์ง๋ก</span> <label for="interest"></label> <input type="text" id="interest" list="choices"> <datalist id="choices"> <option value="marketing" label="๋ง์ผํ "></option> <option value="ec" label="๊ฒฝ์"></option> <option value="prof" label="๊ต์"></option> <option value="dev" label="๊ฐ๋ฐ์"></option> </datalist> </li> </ul> </fieldset> </body> </html>
(3) <textarea> ํ๊ทธ – ์ฌ๋ฌ ์ค ์ ๋ ฅํ๋ ํ ์คํธ ์์ญ ๋ง๋ค๊ธฐ
- ํ ์ค ์ด์์ ๋ฌธ์ฅ์ ์ ๋ ฅํ ๋ ์ฌ์ฉํ๋ ํผ์ ๋๋ค.
- ๊ธฐ๋ณธํ : <textarea [์์ฑ="์์ฑ ๊ฐ"]> ๋ด์ฉ </textarea>
(3) ์์
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ํ ์คํธ ์์ด๋ฆฌ์ ์ฐ์ต</title> </head> <body> <form> <fieldset> <legend>์๋ ํ์ธ์</legend> <textarea name="intro" cols="60" rows="10"> ์๋ ํ์ธ์ ํ ์คํธ ์์ด๋ฆฌ์ ์ฐ์ต ์ค ์ด๋๊น์? </textarea> </fieldset> </form> </body> </html>
5. ๋ค์ํ ํผ ์์๋ค
(1) <button> ํ๊ทธ - ๋ฒํผ ๋ฃ๊ธฐ
- ๋ฌธ์์ ๋ฒํผ์ ๋ฃ๊ณ ํผ์ ์ ์กํ๊ฑฐ๋ ๋ฆฌ์ ํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธํ : <button [type="submit | reset | button"]> ๋ด์ฉ </button>
(1) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>๋ฒํผ</title> </head> <body> <form> <button type="submit" class="subm"> <img src="images/tick.png" alt=" "> ์ ์กํ๊ธฐ </button> </form> </body> </html>
(2) <output> ํ๊ทธ - ๊ฒฐ๊ณผ ์ถ๋ ฅํ๊ธฐ
- ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๋ ํ๊ทธ ์ ๋๋ค.
- ๊ธฐ๋ณธํ : <output [์์ฑ="์์ฑ ๊ฐ"]> ๋ด์ฉ </output>
(2) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ</title> </head> <body> <form oninput="result.value=parseInt(num1.value)+parseInt(num2.value)"> <input type="number" name="num1" value="0"> + <input type="number" name="num2" value="0"> = <output name="result" for="num"></output> </form> </body> </html>
(3) <progress> ํ๊ทธ - ์งํ ์ํ ๋ณด์ฌ์ฃผ๊ธฐ
- ์์ ์ ์งํ ์ํ๋ฅผ ๋ํ๋ด์ฃผ๋ ํ๊ทธ์ ๋๋ค.
- ๋จ์๋ ์์ต๋๋ค.
(3) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>์งํ ์ํ</title> </head> <body> <script> function dwn() { var bar = document.getElementById("bar"), progress = document .getElementById("progress"), loaded = 0; var load = function() { loaded += 5; bar.value = loaded; if (loaded == 100) { clearInterval(dummyLoad); } }; var dummyLoad = setInterval(function() { load() }, 500); } </script> <input type="button" value="๋ค์ด๋ก๋ ์์" onclick="dwn()"> <progress id="bar" value="0" max="100"> <span id="progress"> </span> </progress> </body> </html>
(4) <meter> ํ๊ทธ - ๊ฐ์ด ์ฐจ์งํ๋ ํฌ๊ธฐ ํ์ํ๊ธฐ
- ์ง์ ๋ ๋ฒ์ ์์์ ํด๋น ๊ฐ์ด ์ด๋ ์ ๋ ์ฐจ์งํ๋์ง ํํํฉ๋๋ค.
(4) ์์
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>๋ฏธํฐ</title> </head> <body> <ul> <li> <label>์ ์ ์จ 0.9</label> <!-- ์ ์ฒด ํฌ๊ธฐ 1์ ๊ธฐ์ค์ผ๋ก 0.9๋งํผ ์ฐจ์งํฉ๋๋ค --> <meter value="0.9"></meter> </li> <li> <label>์ฌ์ฉ๋ 100%</label> <!-- ์ ์ฒด 100 ์ค์์ 100์ ์ฐจ์งํฉ๋๋ค --> <meter min="0" max="100" value="100"></meter> </li> <li> <label>ํธ๋ํฝ ์ด๊ณผ</label> <!-- ์ ์ฒด ํฌ๊ธฐ๋ 1024~10240๊น์ง์ธ๋ฐ ๋๋ค๊ณ ์ค์ ํ 8192๋ณด๋ค ํ์ฌ ๊ฐ์ด ๋ ํฝ๋๋ค --> <meter min="1024" max="10240" low="2048" high="8192" value="9216"></meter> </li> <li> <label>์ ์ ํ ํธ๋ํฝ</label> <!-- ์ ์ฒด 1 ์ค์์ ํ์ฌ 0.5๋ฅผ ์ฐจ์งํ๊ณ ์์ผ๋ฉฐ, ์ ์ ๋๋ฅผ 0.8๋ก ์ค์ ํ์ต๋๋ค --> <meter value="0.5" optimum="0.8"></meter></li> </li> </ul> </body> </html>
๋ง๋ฌด๋ฆฌํ๋ฉฐ
์ง๊ธ๊น์ง HTML ๊ณผ ๊ด๋ จ๋ ํ๊ทธ๋ฅผ ๊ณต๋ถํด ๋ณด์์ต๋๋ค.
์์ ์์ ๋ฐฐ์ด ๋ด์ฉ์ ํ๋ํ๋ ๊ณต๋ถํ๋ฉฐ ์งง๊ฒ์งง๊ฒ ํฌ์คํ ํ์ ๋ง์๋จน์์๋๋ฐ, ์ด๋ ๊ฒ HTML ๋ถ๋ถ์ ์๋ฃํ๊ฒ ๋์ด ๊ธฐ์๊ณ ๋ฟ๋ฏํฉ๋๋ค.
๋ค์์ CSS ๊ฒ ์ฃ ? ๋ฌ๋ ค ๋ด ์๋ค!
'๐ FrontEnd > HTML & CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] CSS ๊ธฐ์ด (0) 2022.05.17 [HTML & CSS] ์ฃผ์ ๋ค๋ ๋ฒ (0) 2022.05.16 [HTML] ํผ ๊ด๋ จ ํ๊ทธ์ ์์ - 1 (0) 2022.05.15 [HTML] ์ด๋ฏธ์ง์ ํ์ดํผ๋งํฌ ๊ด๋ จ ํ๊ทธ์ ์์ (0) 2022.05.09 [HTML] ํ ์คํธ ๊ด๋ จ ํ๊ทธ์ ์์ - 2 (0) 2022.05.08