ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 폼 관련 태그들
    HTML 2023. 6. 22. 13:55

    폼 만들기

     

    • 폼의 정의

    사용자가 웹 사이트로 정보를 보낼 수 있는 요소들은 모두 폼 (form)

    • 폼의 기본 태그들

    <form> - 폼을 만드는 기본 태그

    <label> - 폼 요소에 레이블(텍스트)을 붙이는 태그

    <fieldset> - 폼 요소를 그룹으로 묶는 태그

    <legend> - 그룹으로 묶는 구역에 제목을 붙이는 태그

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <form>
            <!-- fieldset는 테두리 박스 -->
            <fieldset>
                <!-- legend 는 테두리에 제목 -->
                <legend>개인 정보</legend>
                <ul>
                    <li>
                        <!-- for="name" name 과 id="name" name을 맞추어야 label 작동 -->
                        <label for="name">이름</label>
                        <input type="text" id="name">
                    </li>
                    <li>
                       
                     <label for="mail">메일주소</label>
                        <input type="text" id="mail">
                    </li>
                </ul>
            </fieldset>
            <fieldset>
                <!-- legend 는 테두리에 제목 -->
                <legend>로그인 정보</legend>
                <ul>
                    <li>
                        <!-- for="name" name 과 id="name" name을 맞추어야 label 작동 -->
                        <label for="ID">아이디</label>
                        <input type="text" id="ID">
                    </li>
                    <li>
                       
                     <label for="password">비밀번호</label>
                        <input type="text" id="password">
                    </li>
                </ul>
            </fieldset>
        </form>
    </body>
    </html>

     

    <input> - 사용자가 입력하는 부분은 거의 <input> 태그를 이용해 처리 type 속성 값에 따라 함께 사용할 수 있는 속성들도 달라진다.

     

    input type

     

    type = “hidden” - 화면상의 폼에는 보이지 않는다.

    type = “text” - 주로 아이디나 이름, 주소 등 텍스트 입력

    type = “password” - 비밀번호 입력란

    type = “search” - 검색 필드

    type = “url” - 웹 주소 필드

    type = “email” - 메일주소 입력 필드

    type = “tel” - 전화번호 입력 필드

    type = “number” - 스핀 박스로 숫자 입력하는 필드

    type = “range” - 슬라이드 막대를 이용해 숫자 입력하는 필드

     

    range number color (각자 쓰는 방법)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <form>
            <fieldset>
                <legend>등록 정보</legend>
                참여인원 <small>(최대10명)</small>
                <input type="number" min="0" max="10"><br>
                지원물품 <small>(1인당 5개)</small>
                <!-- step="5" -> 배수 형태로 움직임 -->
                <input type="number" value="3" min="0" max="50" step="5"><br>
                희망단계 <small>(하,중,상)</small>
                <input type="range" value="2" min="1" max="3"><br>
                <!-- R:red,G:green B:blue -> 3원색을 가지고 색상 조합 -->
                <!-- #에 숫자 2개씩 쌍으로 6개 : 16진수를 2개씩 RGB 형태의 색상 숫자로 표시(최대:ff)-->
                <input type="color" value="#00ff00"><br>
            </fieldset>
        </form>
    </body>
    </html>

     

    type = “radio” - 여러 항목중 하나만 선택할 때

    type = “checkbox” - 여러 항목 중 둘 이상을 선택할 때

     

    예제) radio, checkbox (하나, 둘이상 선택)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <form>
            <h3>수강 분야(다수선택가능)</h3>
        <ul>
            <!-- name="grm" ->grm을 가지고 서버로 이동 -->
            <!-- 문법을 클릭해도 체크가 되지 않음 -->
            <input type="checkbox" name="grm">문법<br>
            <input type="checkbox" name="wr">작문<br>
            <!-- label -> 독해를 클릭하면 체크가 됨 -->
            <label><input type="checkbox" name="rd">독해<br></label>
        </ul>
        <h3>수강 과목(1과목만 선택 가능)</h3>
        <!-- name="subject"->subject 을 똑같이 맞추어야 한마만 선택 가능 -->
        <!-- 서버로 갈때는 subject에 eng나 ch를 들고 간다 -->
        <!-- label 추가해서 글자를 클릭하면 선택됨 -->
        <ul>
            <label><input type="radio" name="subject" value="eng">영어회화<br></label>
            <label><input type="radio" name="subject" value="ch">중국어회화<br></label>
            <label><input type="radio" name="subject" value="jp">일어<br></label>
        </ul>
        
        
        </form>
    </body>
    </html>

     

    type = “color” - 색상 표에서 색상 선택

    type =”date”,type=”month”,type=”week”

    date : 날짜를 선택합니다.

    month : 월과 연도를 선택합니다.

    week : 주와 연도를 선택합니다.

    type = ”time”,type=”datetime-local” : 처음 나타나는 시간 입력

     

    예제) time,datetime-local

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <h3>검사시간을 선택하세요(오늘)</h3>
            시작 시간<input type="time" value="09:00">
            종료 시간<input type="time" value="18:00">
        <h3>검사시간을 선택하세요(오늘)</h3>
        시작시간<input type="datetime-local" value="2016-03-02T09:00">
        종료시간<input type="datetime-local" value="2016-03-02T09:00">
    
    </body>
    </html>

     

    type = “submit”,type=”reset” : 폼 전송/리셋 버튼

    type = “image” submit 버튼 대신 이미지 삽입

     

    input (이미지 삽입)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <form>
            <table>
                <tr>
                    <td>아이디<input type="text" size="15"></td>
                    <td>비밀번호<input type="password" size="15"></td>
                    <td><input type="image" src="images/login.jpg"></td>
                </tr>
            </table>
        </form>
    </body>
    </html>

     

    input 속성

     

    autofocus - 페이지를 불러오자마자 원하는 폼 요소에 마우스 커서 표시

    placeholder - 입력란에 표시하는 힌트로, 필드를 클릭하면 사라짐

    redonly - 내용을 보기만 하고 입력하지 못하게 함

    required - 필수 필드 체크

    min, max, step - 해당필드의 최솟값,최댓값 (step은 숫자간격)

    size : 텍스트 크기

    maxlength : 입력 가능한 최대 글자

    minlegth : 입력 해야할 최소 글자

     

    예제 ) placeholder

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <h1>프런트엔드 개발자 지원서</h1>
       <p> HTML,CSS,Javascript에 대한 기술적 이해와 경험이 있는 분을 찾습니다. </p>
       <hr>
        <h4>개인정보</h4>
        <ul>
            <li>이름 <input type="text" autofocus placeholder="공백없이 입력하세요"></li>
            <li>연락처 <input type="tel" ></li>
        </ul>
        <h4>지원 분야</h4>
        
    
    <ul >
        <li><label><input type="radio" name="1" value="pub"> 웹 퍼블리싱 </li></label>
        <li><label><input type="radio"name="1" value="ap"> 웹 애플리케이션 개발 </li></label>
        <li><label><input type="radio"name="1" value="we"> 개발 환경 개선 </li></label>
        </ul>
    
    <h3>지원동기</h3>
    <textarea cols="60" rows="5" placeholder="본사 지원 동기를 간략히 써 주세요.">
       </textarea>
       
    <div><input type="submit" value="접수하기">
    <input type="reset" value="다시 쓰기"></div>
    
    </body>
    </html>

     

    여러 데이터 나열해 보여주기

     

    <select>,<optgroup>,<option>

    <optgroup> - 여러 항목을 그룹을 묶을 때 사용 (label 속성을 사용해서 그룹제목)

    <datalist>,<option> - 데이터 목록에 제시한 값 중에서 선택하면 그 값이 자동으로 텍스트 필드에 입력됨

     

    예제) datelist (목록중 선택)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <h1>여름방학 특강 신청</h1>
        <form>
    <fieldset>
        <legend>수강 신청인</legend>
        <ul>
            <li>
                학번
                <input type="text"autofocus>
            </li>
            <li>
                이름
                <input type="text" >
            </li>
            <li>
                학과
                <!-- multiple 속성은 모양이 늘어나면서 ctrl키를 이용해서 여러개 선택 가능 -->
                <!-- size 속성은 콤보 갯수를 설정 -->
                <select>
                    <!-- optgroup 태그는 콤보리스트를 그룹으로 묶음 -->
                    <!-- label 속성은 그룹 이름 설정 -->
                            <optgroup label="공과대학">
                            <!-- value 속성은 서버로 들고 간다 -->
                            <option value="archi">건축공학과</option>
                                    <option value="mechanic">기계공학과</option>
                                    <option value="archi">산업공학과</option>
                                    <option value="archi">전기공학과</option>
                                    <!-- selected 속성은 초기값 설정 -->
                                    <option value="computer" selected>컴퓨터공학과</option>
                                    <option value="archi">화학공학과</option>
                                </optgroup>
                                <optgroup label="인문대학">
                                    <option value="history">사학과</option>
                                            <option value="lang">어문학부</option>
                                            <option value="philo">철학</option>
                                        </optgroup>
                </select>
            </li>
        </ul>
    </fieldset>
    <fieldset>
        <legend>수강 과목을 선택하세요</legend>
        <ul>
            <li>
                관심분야
                <!-- list랑 id 속성값(이름) 맞췄는지 확인 -->
                <!-- 선택하면 value값이 기본값으로 표시 -->
                <input type="text" list="choices">
                <datalist id="choices">
                    <option value="grammar" label="문법"></option>
                    <option value="voca" label="어휘"></option>
                    <option value="speaking" label="회화"></option>
                    <option value="listening" label="리스닝"></option>
                    <option value="news" label="뉴스청취"></option>
                </datalist>
                
            </li>
        </ul>
    </fieldset>
        </form>
    </body>
    </html>

     

    • <option> 태그의 속성

    value - 서버로 넘겨질 값을 지정

    label - 사용자를위해 브라우저에 표시할 레이블 따로 지정안할때 value값을 레이블로 사용

     

    기타 다양한 폼 요소들

     

    <button> - 다양한 형태의 버튼 삽입

    <output> - 계산 결과를 브라우저에 표시

    <progress> - 작업 진행 상태를 브라우저에 표시

     

    예제) progress (바에서 어디까지 진행)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <ul>
            <li>
                10초 남음
                <!-- 60초 중 50초 진행 -->
                <progress value="50" max="60"></progress>
            </li>
            <li>
                진행률 30%
                <!-- 전체 100% 중 30% 진행 -->
                <progress value="30" max="100"></progress>
            </li>
        </ul>
    </body>
    </html>

     

    <meter> - 전체 크기 중에서 얼마나 차지하는지를 표현할 때 사용

     

    예제) meter (전체에서 어디까지 진행 progress랑 비슷함)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <ul>
            <li>
                점유율 0.8
                <!-- 전체 기준 1로 0.8만큼 차지 -->
                <meter value="0.8"></meter>
            </li>
            <li>
                사용량 64%
                <!-- 전체 기준 100으로 64만큼 차지 -->
                <meter min="0" max="100" value="64"></meter>
            </li>
            <li>
                트래픽 초과
                <!-- high 속성값보다 크면 노란색으로 표시 -->
                <!-- low 속성값보다 작으면 노란색으로 표시 -->
                <meter min="1024" max="10240" low="2048" high="8192" value="2000"></meter>
            </li>
        </ul>
        
    </body>
    </html>

     

     

     

    'HTML' 카테고리의 다른 글

    이미지와 하이퍼링크  (0) 2023.06.22
    텍스트 관련 태그들  (0) 2023.06.22
    HTML 기본기 다지기  (0) 2023.06.22
Designed by Tistory.