본문 바로가기
💻 1. 웹개발_Front end/1-2 HTML

[HTML] 04-1 폼 만들기

by 달님🌙 2021. 9. 5.
반응형

 

1. 웹에서 자주 만나는 폼

 

① 회원가입, 로그인, 쇼핑몰의 주문화면 등 웹 사이트로 정보를 보낼 수 있는 요소들을 폼(form)이라고 함

 

2. 폼의 동작 방식

 

① 사용자가 아이디와 비밀번호 입력 후 로그인 버튼 클릭

② 사용자가 입력한 아이디와 비밀번호가 웹 서버로 전송

③ 서버에서 사용자 데이터베이스를 검색해서 사용자가 전송한 아이디와 비밀번호가 서로 일치하는지 확인 후 결과를 브라우저로 리턴

④ 일치하는 정보가 사용자 데이터베이스에 있을 경우 로그인 성공, 아니면 로그인 실패 화면으로 이동

 

3. <form> 태그 – 폼 만들기

 

① <form>은 폼을 만드는 가장 기본적인 태그

② <form>~</form> 사이에 여러 폼 요소 관련 태그 주입

<form [속성="속성 값"]>여러 폼 요소</form>

 

4. <form> 태그에서 사용하는 속성들

 

 

<예제 – form-001.html>

<!DOCTYPE html>
<html lang="ko">
<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>HTML5 폼</title>
</head>
<body>
    <!--form>input*2-->
    <!--action속성 : form태그가 전송될 서버의 프로그램이나 메소드 지정-->
    <form action="search.php" method="post">
        <input type="text" title="검색">
        <!--submit : form의 action을 동작시킴-->
        <input type="submit" title="검색">
    </form>
</body>
</html>

 

5. <label> 태그 – 폼 요소에 레이블 붙이기

 

① 레이블(label)이란 입력 창 옆에 ‘아이디’나 ‘비밀번호‘처럼 붙여놓은 텍스트를 의미

② 방법 1. <label> ~ </label> 태그 안에 폼 요소인 <input> 태그 넣기

<label>아이디(6자 이상)<input type="text" ...></label>

③ 방법 2. <label> 태그와 폼요소인 <input> 태그를 따로 사용하고 <label> 태그에 for 속성 이용하기

<label for "user-id">아이디(6자 이상)</label>
<input type="text" id="user-id">

 

 

<예제 – label-001.html>

<!DOCTYPE html>
<html lang="ko">
<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>label 태그 사용</title>
    <style>
        ul {
            list-style: none;
        }
        li {
            margin: 20px;
        }
        li label {
            width: 70px;
            float: left;
            font-size: 14px;
            font-weight: bold;
            line-height: 25px;
        }
    </style>
</head>
<body>
    <!--form>ul>(li>(label+input))*2+(li>input)-->
    <form action="login.php" method="POST">
        <ul>
            <li>
                <!--label : input에 텍스트 붙이는 태그-->
                <!--for속성 : input의 id속성과 매핑-->
                <label for="id">아이디</label>
                <input type="text" id="id">
            </li>
            <li>
                <label for="pw">비밀번호</label>
                <input type="password" id="pw">
            </li>
            <li>
                <input type="submit" title="로그인" value="로그인">
            </li>
        </ul>
    </form>
</body>
</html>

 

6. 라디오 버튼과 체크박스에서 <label> 태그

 

① 스마트폰 같은 작은 화면에서 라디오버튼이나 체크박스를 정확히 선택하기 힘든데 <label> 태그와 연결하여 사용하면 <label> 태그안에 텍스트만 클릭 또는 터치해도 라디오버튼과 체크박스 선택 가능

 

<예제 – withlabel-001.html>

<!DOCTYPE html>
<html lang="ko">
<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>label 태그 사용</title>
    <style>
        ul {
            list-style: none;
        }
        li {
            margin: 20px;
        }
    </style>
</head>
<body>
    <!--form>(h3+(ul>(li>input)*3)+h3+(ul>(li>label>input)*3))-->
    <form>
        <h3>수강 분야(복수 선택 가능)</h3>
        <ul>
            <li>
                <input type="checkbox" value="grm">문법
            </li>
            <li>
                <input type="checkbox" value="작문">작문
            </li>
            <li>
                <input type="checkbox" value="독해">독해
            </li>
        </ul>
        <h3>수강 과목(1과목만 선택 가능)</h3>
        <ul>
            <li>
                <!--레이블을 이용하여 글과 체크박스를 하나로 묶어주는게 좋음-->
                <label> 
                    <input type="radio" name="subject" value="eng">영어회화
                </label>
            </li>
            <li>
                <label>
                    <input type="radio" name="subject" value="ch">중국어회화
                </label></li>
            <li>
                <label>
                    <input type="radio" name="subject" value="jp">일본어회화
                </label></li>
        </ul>
    </form>
</body>
</html>

 

7. <fieldset>, <legend> 태그 – 폼 요소 그룹으로 묶기

 

① 쇼핑몰 사이트에서 주문서 폼에서 사용자 정보와 배송 정보를 분리하여 표시하는 것을 흔히 발견할 수 있는데

이렇게 하나의 폼 안에 여러 구역을 나누어 표시할 때 <fieldset>, <legend> 태그 사용

② 형태 :

<fieldset [속성="속성 값"] > ... </fieldset>

③ <fieldset> ~ </fieldset> 안의 폼 요소들을 하나의 영역으로 묶고 외곽선을 그려줌

④ <legend> 태그는 <fieldset>으로 묶은 그룹에 제목을 붙여줌

 

<예제 – fieldset-001.html>

<!DOCTYPE html>
<html lang="ko">
<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>fieldset과 legend 태그</title>
    <style>
        ul {
            list-style: none;
        }
        li {
            margin: 20px;
        }
        li label {
            width: 80px;
            float: left;
        }
        fieldset {
            margin: 15px;
        }
    </style>
</head>
<body>
    <!--form>(fieldset>legend+(ul>(li>label+input)*2))*2-->
    <form>
        <fieldset>
            <legend>개인 정보</legend>
            <ul>
                <li>
                    <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>
            <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>
</body>
</html>

 

반응형

댓글