클라우드 융합 Full-stack 웹 개발자 양성과정/HTML, CSS, JavaScript, j-Query

HTML - test, 태그(글자, 목록, 표, 이미지 및 멀티미디어, 입력 양식 및 폼 관련)

thesunset 2022. 10. 17. 23:23

0. 설치


- visual studio code 설치 -> 확장프로그램 korean, Live Server,  Auto Rename Tag 설치 

 

0. 워크스페이스 생성


미리 'frontend-workspace' > '1_html_workspace'폴더 생성 후 

폴더열기 > 주소복사 'C:\frontend-workspace\1_html_workspace' 

 


0. Test


- 새파일 > 0_test.html (확장자가 html)

<html>여는 html 태그 

</html> 닫는 html 태그 

합쳐서 '요소'

<!DOCTYPE html>
<html></html>

 

- <head>태그, <body>태그

html 부모요소 / head, body 자식요소 

<!DOCTYPE html>
<html><!--시작-->
    <head> 

    </head>
    <body>


        
    </body> 
</html><!--끝-->

- html의 자식요소 이면서 h1의 부모요소 

 <body>
        <h1>HTML 제목</h1> 
    </body>

Open with Live Server시, 

- <button> 버튼 태그 

: 버튼 표시 만들기

<button> 버튼 </button>

 

- <hr> 태그

: 구분선(긴 실선) 가로로 구분선, 수평선을 긋는 태그 

  <hr>

 


1. 글자 관련 태그


새파일 > 1_글자관련태그.html

! > tap > 기본설정 자동완성 

 

1) HTML문서 형식 선언: HTML형식이라는 것을 알려주기 위한 태그

2) <html> HTML문서의 시작과 끝을 표시해주는 태그
    lang속성(=표시로 되어있음)은 이 문서가 어느나라 언어로 만든것인지 쓰여있음
    " "은 속성값

3) <head> 문서의 머리부분을 나타냄

: 해당 문서의 각종정보, 제목, 설명, 스크립트 & 스타일시트 링크 선언 하는 태그

<!DOCTYPE html>
<html lang="en"> 
<head>
    <meta charset ="UTF-8">
    <meta name =" generator" content = "VScode"> 
    <mata name ="author" content = "JongLo C class">
    <meta name = "keyword" content = "글자태그">
    <meta name = "description" content = "이문서는 글자와 관련된 태그를 공부하는 페이지입니다.">
 
    <title>글자 관련 태그</title>
</head>
글자관련태그 title

 

4) charset: 이 문서의 인코딩방식을 정의

5) generator: 이 문서를 생성한 프로그램

6) author: 이 문서의 저장

7) keyword: 이 문서를 나타내는 키워드

8) description : 이 문서에 대한 설명

9) <title> : 이문서의 제목을 나타냄

10) <body> 문서의 몸체부분을 나타냄 : 화면에 출력해서 보여주는 정보, 내용들을 작성하는 태그 

 

페이지 소스 검사를해보면, 

html은 주석도 다 보임

11) <br> : 줄바꿈 태그

   <br><br>
    안녕하세요3<br>

12) h관련 태그(h1~h6) : 주로 제목붙일 때 씀 / 구조를 잡는 언어(절대로 글자 크기를 지정하는 것은 X > CSS에서 처리) 

    <h1>h1태그입니다.</h1>
    <h2>h2태그입니다.</h2>
    <h3>h3태그입니다.</h3>
    <h4>h4태그입니다.</h4>
    <h5>h5태그입니다.</h5>
    <h6>h6태그입니다.</h6>
    <h7>h7태그</h7> <!--존재하지 않는 태그 사용 시 : 일반 글꼴 -->

 

< 문단을 나누는 태그 >


1) <p>

줄바꿈 입력의 별도의 태그로 지정해야 한다. 그리고 공백은 한 개의 공백만 표시하기 때문에 기호문구를 사용해야 함(원하는 공백만큼) 

1-1) <br> : 줄바꿈 

1-2) &nbsp; : 공백

 

2) <pre>

pre태그는 여러 공백이 인식가능하고 줄바꿈 등을 포함해서 입력한 내용 그대로 표현하는 태그이다. 

 

    <h3> 문단을 나누는 태그 </h3>
    <p>
        문단 영역을 나누는 태그로는 p태그와 pre태그가 있다. <br>
        단, p태그는 줄바꿈입력을 별도의 태그로 지정해야 한다. <br>
        그리고              공백은 한 개의 공백만 표시하기 때문에
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;기호문구를 작성해야 한다.(원하는 공백만큼) 
    </p>
    <pre>
        pre태그는 여러                          공백이 인식 가능하고
        줄바꿈 등을 포함해서 입력한 내용 그대로를 표현하는 태그이다. 
    </pre>

p와 pre는 폰트와 폰트크기도 다르다

< 그 밖에 글자를 표현해주는 태그들 >


-> HTML은 "구조"만 잡는 역할이기에 "효과"를 주고싶다면 CSS로 해야함

1) <b> : 글자를 굵게 표시하는 태그 

2) <strong> : 글자를 굵게 표시하는 태그 (강조) 

3) <em> : 글자를 기울여서 표시하는 태그 

4) <i> : 글자를 기울여서 표시하는 태그 

5) <s> : 글자의 취소선을 넣어주는 태그 

6) <mark> : 형관펜 효과를 주는 태그

7) <small> : 글자를 작게 표현하는 태그 

8) <big> : 글자를 크게 표현해주는 태그

9) <sub> : 기본글자에 아래 첨자를 나타내는 태그 

10) <sup> : 위첨자를 나타내는 태그 

<h3>그 밖에 글자를 표현해주는 태그들</h3> 

일반글꼴(태그로 감싸지지 않은 텍스트)
<br><br>
<b> b : 글자를 굵게 표시하는 태그</b> <!--글자를 굵게-->
<br><br>

<strong> strong : 글자를 굵게 표시하는 태그 </strong> <!--글자를 강하게 표시(강조)-->
<br><br>

<em> em : 글자를 기울여서 표시하는 태그 </em> 
<!--HTML은 구조만 잡는 역할이기에 굵게, 기울이게 효과를 주고 싶다면 CSS로 해야 함-->
<br><br> 

<i> i : 글자를 기울여서 표시하는 태그 </i>
<br> <br> 

<s> s : 글자의 취소선을 넣어주는 태그 </s>
<br><br>

<mark> mark : 형광펜 </mark> 효과를 주는 태그들
<br><br> 

<small> small : 글자를 작게 표현해주는 태그 </small>
<br><br>

<big> big : 글자를 크게 표현해주는 태그</big> 
<br><br>

sub : 기본글자에 <sub> 아래 첨자</sub>를 나타내는 태그들
<br><br>

sup : <sup> 위첨자 </sup>를 나타내는 태그

 

 

< 글자관련 응용문제 > 

Q. HTML로 동일하게 만들기

 

   <h3> 글자 관련 태그 응용 문제 </h3>
    태그들은 해당 태그 내에서 중첩으로 사용 가능하다. <br>
    <b> 굵은 </b> 글자를 사용할 수도 있고 <br>
    <i> 기울이거나, </i> <s>취소선</s>을 넣는 등 다양하게 사용할 수 있다. <br> 
    <mark>형관펜</mark>을 넣어 글자를 강조할 수도 있다.<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTML 꿀잼꿀잼

 

2. 목록 관련 태그


1) <li> : 가장 기본적인 목록을 나타내는 태그, list의 약자 

<li>목록1</li>
<li>목록2</li>

노란색 : 불릿(bullet)기호

- 불릿(bullet)기호 : 채워진 원, 빈 원, 네모 등 모양 변경 가능 CSS시간에 할 예정

2) <ul> : 순서가 없는 목록 태그

 

 

 

* 조상요소(2개이상의 자손이 있을 때)  - 후손요소 - 부모요소 - 자식요소

<ul><!--부모요소, 4개의 자식요소를 가지고 있음(직계자손만 해당)두 개이상의 자손이 있을 경우 조상요소-->
    <li>HTML <!--부모요소, 1개의 자식요소(ul), 후손요소, 조상요소(li의 입장)-->
        <ul> <!--부모요소, 1개의 자식요소(li)--> 
            <!-- 목록 안에 목록을 넣을 수 있다.  -->
            <li> 글자 관련 태그 </li>
            <li> 목록 관련 태그 </li>
        </ul>
    </li>
    <li>CSS</li>
    <li>JavaScript</li>
    <li>jQuery</li>
</ul>

3)<ol> : 순서가 있는 목록 태그 , 기본적으로 1부터 시작하는 숫자값 

type속성을 이용하여 변경가능(속성값 : 1(기본값), A, a, i, l)

<ol>
    <li>HTML</li>
    <li>CSS</li>
    <li>JavaScript</li>
    <li>jQuery</li>
</ol>
<ol type="A">
    <li>HTML</li>
    <li>CSS</li>
    <li>JavaScript</li>
    <li>jQuery</li>
</ol>
<ol type="a">
    <li>HTML</li>
    <li>CSS</li>
    <li>JavaScript</li>
    <li>jQuery</li>
</ol>
<ol type="i">
    <li>HTML</li>
    <li>CSS</li>
    <li>JavaScript</li>
    <li>jQuery</li>
</ol>
<ol type="I">
    <li>HTML</li>
    <li>CSS</li>
    <li>JavaScript</li>
    <li>jQuery</li>
</ol>
<ol start="5">
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
</ol>

3) <dl> : 설명과 관련된 목록태그 

<dt> : 제목

<dd> : 설명

- dd를 여러 줄 작성할 수 있으며, 제목과 설명을 추가로 작성이 가능하다. 

 

<실습문제> 


<h3>자바(Java)과정 학습내용</h3>
<b>담당강사 : 이**</b><br> 
핸드폰번호 : 010-1111-2222
<hr> 
<ul>
    <li>프로그래밍언어
        <ul>
            <li><s>Java</s></li>
        </ul>
    </li>
    <li>데이터 베이스
        <ul>
            <li><s>Oracle</s></li>
        </ul>
    </li>
    <li>Frontend
        <ol>
            <li><mark>HTML5</mark></li>
            <li>CSS3</li>
            <li>JavaScript</li>
            <li>jQuery</li>
        </ol>
    </li>
    <li>서버 개발 기술
        <ol> 
            <li><s>JDBC</s></li>
            <li>Servlet</li>
            <li>JSP</li>
            <li>AJAX</li>
        </ol>
    </li>
    <li> 프레임워크
        <ol> 
            <li>MyBatis</li>
            <li><b>Spring</b></li>
        </ol>
    </li>
</ul>
</body>
</html>

 

3. 표관련태그 


● 표 : 행과 열로 이루어짐

         문서에서 다량의 데이터를 정리해서 표현하고자 할 때 사용

● 표를 구성하는 태그  : <table>, <tr>, <th>, <td> // <thead>, <tbody>

<table></table> : 기본적으로 표를 생성해주는 태그

<tr></tr> : 표의 한 행(가로 한줄)을 나타내는 태그
<th></th> : 열의 제목 셀을 나타내는 태그
<td></td> : 표의 일반 셀(한 칸)을 나타내는 태그

1) 기본적인 표 만들기


- 테이블 만드는 법:  1. 테이블을 쓴다. > 2. <tr>태그를 쓴다 > <td>셀들을 나눠준다

(1) border 속성 : 표의 테두리 두께 지정

(2) <caption> 태그 : 테이블의 제목추가(기본적으로 테이블 상단 중앙)표의 이름을 지정해줄 수 있는 tag

(3) width 속성 : 가로길이지정, 크기(속성값), 단위 px

(4) height 속성 : 세로길이지정 (세로 길이는 첫 칸에만 지정해주면 됨)

(5) <th> : 가운데정렬 + 볼드체

(6) <td> : 일반폰트 

 
<table border="1"> 
<caption>웹 브라우저 종류</caption> 
<tr>
    <th width = "150" height = "30">브라우저 명</th>
    <th width = "80">제조사</th>
    <th width = "220">홈페이지</th>
</tr>
<tr>
    <td>Chroom</td>
    <td>Google</td>
    <td>http://www.google.com</td>
</tr>
<tr>
    <td>Edge</td>
    <td>Microsoft</td>
    <td>http://www.microsoft.com</td>      
</tr>
<tr>
    <td>Safari</td>
    <td colspan="2">Apple</td>
</tr>
</table>

2) 표와 행과 열을 합치는 속성 


- 셀태그<th>, <td>와 속성을 이용해서 행 또는 열을 합칠 수 있음

- colspan = "2" : 2개의 열을 합치겠다.

- rowsspan = "2" : 2개의 행을 합치겠다. 

<table border="1">
    <tr>
        <td colspan="2" rowspan="2" width = "130", height = "150"></td>
        <td>이름</td>
        <td width = "80"></td>
    </tr>
    <tr>
        <td>연락처</td>
        <td></td>
    </tr>
    <tr>
        <td height = "50">주소</td>
        <td colspan="3"></td>
    </tr>
    <tr>
        <td height = "200">자기소개</td>
        <td colspan="3"></td>
    </tr>
</table>

<br><br><br>

<table border="1">
  <tr>
    <td colspan="2" rowspan="2"></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
  </tr>
</table>

 

3) 테이블 내에 구조나누기 


- <thead> : 테이블 당 하나만 존재가능

- <tfoot> : 테이블 당 하나만 존재가능(thead뒤에 존재해야 함)

<table border="1">
    <thead> <!--테이블 당 하나만 존재가능-->
        <th>이름</th>
        <th>주소</th>
        <th>성별</th>
    </thead>
    <tbody>
        <tr>
            <td>이**</td>
            <td>남*시</td>
            <td>남</td>
        </tr>
        <tr>
            <td>홍길동</td>
            <td>서울시</td>
            <td>남</td>
        </tr>
        <tr>
            <td>철수</td>
            <td>대전광역시</td>
            <td>남</td>
        </tr>
    <tfoot>
        <th colspan = "2">총 인원</th>
        <td>3명</td>
    </tfoot>
    </tbody>
    <tfoot>

    </tfoot>
</table>

<실습문제> 


<table border="1">
<thead>
    <th colspan="5" rowspan="5">게시판</th>
</thead>
<tbody>
    <th>글번호</th>
    <th>제목</th>
    <th>닉네임</th>
    <th>작성일</th>
    <th>조회수</th>
<tbody>
    <tr>
        <td>5</td>
        <td>점심 뭐가 맛있나요?</td>
        <td>종로지킴이</td>
        <td>2022-18-18 14:22</td>
        <td>3</td>
   
    <tr>
        <td>4</td>
        <td>부장님께 혼났습니다ㅠㅠ</td>
        <td>신입이</td>
        <td>2022-18-18 16:42</td>
        <td>32</td>
    </tr>
    <tr>
        <td>3</td>
        <td>주식 아직도 해?</td>
        <td>은행원</td>
        <td>2022-10-17 16:23</td>
        <td>0</td>
    </tr>
    <tr>
        <td>2</td>
        <td>박** 축구 너무 잘해</td>
        <td>패스마스터</td>
        <td>2022-10-17 10:15</td>
        <td>15</td>
    </tr>
    <tr>
        <td>1</td>
        <td>첫글</td>
        <td>신나신나</td>
        <td>2022-10-13 01:11</td>
        <td>3</td>
    </tr>
    
    <tr>
        <td rowspan = "2">합계</td>
        <td colspan = "4"> 총 게시글 수: 5</td>
    </tr>
    <tr>
        <td colspan="4">총 조회 수: 150</th>
    </tr>

</table>

4. 이미지 및 멀티미디어 관련 태그 

1) 이미지 관련태그 


< img src = "삽입하고자 하는 img의 경로(필수)" alt = "이미지설명문구"

   width = "이미지의 가로크기"(px/%) height = "이미지의 세로크기(px/%)" >

 

(1) src속성, alt속성

● alt

    - 사진의 경로가 없는 경로거나 이미지를 제대로 표현할 수 없는 경우 대체텍스트의 용도

    - 시각 장애인들을 위한 스크린리더(화면낭독기)에서 이미지를 읽어주는 설명문

    웹 접근성 => 사용자의 신체적 특징이나, 지역, 나이, 지식수준 등을 고려하여

    가능한 많은 사용자가 불편 없이 이용할 수 있도록 서비스를 만들어서 제공하는 것

 <h3>src속성, alt속성</h3>
<img src="https://han.gl/sKmKU" >
<br>
<!-- 절대경로 -->
<img src = "resources\image\bono1.jpg" alt="이 사진은 보노보노입니다.">
<!-- 만약 경로가 잘못되었거나, 망가졌을 때 이미지가 나오지않고 그림이 나옴 
이때 alt속성을 적어준 것이 출력됨 > 오류 시에만 나오는 문구 -->

+ 이미지 주소가 너무 길 경우, url줄이기를 이용해 줄이기(가독성을 위해)

 

(2) width와 height 속성

- 이미지의 가로, 세로 길이 조정가능

- 고정길이(px), 가변길이(%)로 지정이 가능하다. 

 

● 고정길이단위(px) - 기본값 : 화면사이즈가 조정되더라도 이미지의 크기가 변동 X

<img src="/resources/image/flower2.jpg" alt="꽃" width="100" height="150"/>
<img src="/resources/image/flower3.jpg" alt="꽃" width="150" height="200">
<img src="/resources/image/flower4.jpg" alt="꽃" width="200" height="200">
<img src="/resources/image/flower5.jpg" alt="꽃" width="200" height="175">

+ 닫는 태그가 없는 태그 = 빈태그 / 빈 태그를 표시할 때 맨 끝에 /를 붙여 빈태그를 표시해줌

 

● 가변길이단위(%)  : 화면사이즈 혹은 부모요소 사이즈에 따라 이미지의 크기도 같이 변동

<img src="/resources/image/flower2.jpg" alt="꽃" width="15%" height="150"/>
<img src="/resources/image/flower3.jpg" alt="꽃" width="15%" height="200">
<img src="/resources/image/flower4.jpg" alt="꽃" width="15%" height="200">
<img src="/resources/image/flower5.jpg" alt="꽃" width="15%" height="175">

2) 미디어 관련 태그 


(1) 오디오 관련 태그 

< audio src = " "controls autoplay loop></audio>

- controls : 플레이어를 보일 여부 지정

- autoplay : 자동재생여부지정(IE O, Chroom X)

- loop : 반복재생여부지정

<audio src="/resources/audio/major.mp3" controls autoplay loop></audio>

● controls="controls"속성명과 속성값이 같을 경우 속성값을 생략해도 됨

(2) 비디오 관련 태그 

<video src = " "controls autoplay loop width = " " height = " " poster = " "></video>

- controls, autoplay, loop : 오디오와 동일

- width, height : 가로, 세로 길이 지정

- poster : 썸네일 이미지 

<video src="/resources/video/movie.ogv" controls
width="400" height="200" poster="/resources/image/bono.jpg"></video>

5. 입력양식 및 폼관련 태그 

1) 입력양식관련 태그 


(1) <input> 태그

- 사용자에게 값을 "입력"받을 수 있도록 텍스트 상자, 체크박스 등등을 만들 수 있는 태그 

- type속성으로 지정가능

Id : <input type="text"> <br>
Pwd : <input type="password"> <br>
성별 : <input type="radio"> 남자 <input type="radio"> 여자 <br><br>
<button>회원가입</button>
<input type="submit" value = "회원가입">

● type = password : 비밀번호를 *로 표시해주는 속성

 

 

2) 폼관련 태그 


(1) form

- 해당 입력 양식의 틀을 의미

- form 태그 내에 submit 버튼을 클릭 시 해당 form 태그에 작성한 사용자가 입력한 값들을 서버로 넘기면서 요청하는 역할을 하는 것이 form 태그와 submit버튼

<form action = " " method = " "></form>

● action 속성 : 해당 form 태그 안에 사용자가 입력한 값들을 전달하면서 요청할 서버의 경로를 제시

                         즉, 어디로 보낼 건지 지정

● method 속성 : 요청 전송 방식을 지정하는 속성(get방식(기본방식) / post방식) <br>
            > get방식(기본) : 요청 시 사용자가 입력한 값들이 url에 노출되는 방식 (예) 네이버 검색
            > post방식 : 요청 시 사용자가 입력한 값들이 url에 노출되지 않는 방식 (예) 로그인
- form 태그 내의 submit버튼 클릭 시 action에 지정한 서버의 경로로  method에 작성된 요청 전송 방식을 사용해서

사용자가 입력한 값들을 key = value 전달

<form action="test.do" method="get"> 
    검색 내용 : <input type="text" name = "query"> <!--name 속성  : key 제시-->
    <input type="submit" value="검색">

</form>

fieldset : 그룹을 묶는 태그 (테두리를 만들어준다)

legend : 해당 그룹의 제목을 붙여주는 태그(없어도 무관) 

<form action="1234.do" method="post">
    <fieldset>
        <legend>제목1</legend>
        입력1 : <input type="text" name = "text1"> <!--url에 검색한 값이 나타나지 않음-->
    </fieldset>
    <fieldset>
        <legend>제목2</legend>
        입력2 : <input type="text" name="text2">
    </fieldset>

    <input type="submit" value="확인" >
</form>

(2) text와 관련된 input태그의 type (type = "test")

- 한 줄 짜리 텍스트를 입력할 수 있는 텍스트 상자 

아이디 : <input type="text" name = "userId" value
			placeholder="아이디를 입력하세요. " required >

 key : name / value : 사용자가 입력한 값

● name : key 지정 , 의미를 부여해서 짓는 것이 좋음
● value : 텍스트값을 양식에 넣을 수 있음

 placeholder : 입력을 유도하는 꾸밈요소 / 진짜 값이 입력된 것이 아닌, 입력할 값을 안내

 required : 필수 입력사항일 경우 부여 / 반드시 값을 입력해야 서버로 내보낼 수 있음

 

- 비밀번호를 입력할 수 있는 상자 

비밀번호 : <input type="password" name = "userPwd" 
required maxlength="5" placeholder="영문, 숫자, 특수문자 포함 최대 5글자">

 maxlength : 작성할 수 있는 최대 길이 

- type = "search/url/email"

검색 : <input type="search" name ="query" placeholder="검색어 입력">
<br>
홈페이지 : <input type="url" name = "homepage" value="http://">
<br>
이메일 : <input type="email" name = "email">

<input type = "submit">

 겉모습은 일반 텍스트 상자와 비슷하지만 각각의 정보에 맞게 세분화된 기능 제공

  검색 : <input type = "search" name = "query" placeholder = "검색어입력">

  홈페이지 : <input type="url" name = "homepage" value="http://">

  이메일 : <input type="email" name = "email">

(3) textarea 태그

- 텍스트 상자인데 여러 줄 입력할 수 있음

<form action = "test.do">
        <fieldset>
            <legend>글 작성</legend>
             글제목 : <input type = "text" name = "title" size="30"> <br>
             글내용 : <textarea type = "text" name = "content" cols = "30" 
             rows = "20" style="resize:none;" ></textarea>

        <br><br>
        </fieldset>

        <input type = "submit" value="작성하기">
</form>

(4) 숫자와 관련된 input태그의 타입

● type = "number"

- 숫자값만 작성 가능한 텍스트 상자

- 스핀박스를 표시(스핀박스 : 위 / 아래 화살표 버튼)

<form action="test.do">
수량 : <input type = "number" name = "amount" min = "0" max = "20" value = "1" step = "5">

- min : 최소값

- max : 최대값

- step : 한 번에 증가하거나 감소할 수 있는 값의 크기

● type = "range"

- 슬라이드바를 이용해서 숫자를 지정

점수 : <input type = "range" name = "score" min = 0 max = 100 step = 25>

<input type="submit">
<input type="reset">

</form>

* reset : 현재 부모요소 form 태그 안에 있는 input 태그들 초기화

(5) 날짜 및 시간과 관련된 input태그의 type

 : type = "date/month/week/time/datetime-local"

● 연도, 월, 일을 입력받을 수 있는 텍스트 상자

 date : <input type = "date" name = "date">

● 연도, 월을 입력받을 수 있는 텍스트 상자

month : <input type = "month" name ="month">

● 연도, 해당 년도에 몇 번째 주인지 입력받을 수 있는 텍스트 상자

week : <input type = "week" name = "week">

● 오전/오후, 시, 분을 입력받을 수 있는 텍스트 상자

time : <input type = "time" name = "time">

● 연도, 월, 일, 오전/오후, 시, 분을 입력받을 수 있는 텍스트 상자 

datetime - local : <input type="datetime-local" name = "dt">

(6) 라디오 버튼과 체크박스 관련 input태그 

● 라디오 버튼(type = "radio")

- 제시한 여러 개의 선택지들 중에서 오로지 한 개만 선택해야 할 때 사용 <br>
- 제출 시 현재 선택된 (checked)값이 넘어감 <br>
- name 속성값이 똑같은 것들끼리 하나의 그룹으로 묶임 (하나만 선택가능 )

점심메뉴 : 
<input type = "radio" name = "lunch" id = "lunchA" value = "짜장면" checked> <label for = "lunchA">짜장면</label>  
<input type = "radio" name = "lunch" id = "lunchB" value = "짬뽕" > <label for = "lunchB">짬뽕</label>
<input type = "radio" name = "lunch" id = "lunchC" value= "짬짜면" > <label for = "lunchC">짬짜면</label>

* 무조건 체크해서 제출하게 하고 싶다면 셋 중 하나를 checked속성 넣어주기

* id는 고유한 식별자

* 체크박스가 아닌 글자를 클릭해도 선택하게 하고 싶다면 id지정 후 label붙이기

● 체크박스(type="checkbox")

- 제시한 여러 개의 선택지들 중에서 여러 개를 선택 가능하게 하고 싶을 때 사용
- 넘기고자 하는 값을 value속성에 명시해야 함

취미 : 
<input type="checkbox" name="hobby" value = "exercise" id = "exercise"> <label for = "exercise">운동</label>
<input type="checkbox" name="hobby" value="sleep" id="sleep"> <label for = "sleep">수면</label> 
<input type="checkbox" name="hobby" value="reading_book" id="reading_book"> <label for = "reading_book">독서</label>

(7) 추가적인 input태그의 type

- type = "color"

: 색상을 선택할 수 있는 input태그의 type

색상선택 : <input type="color">

- type = "file"

: 첨부하고자 하는 파일을 선택할 수 있는 input태그의 type

첨부파일 : <input type="file">

- type = "hidden"

: 특정 값을 사용자에게 입력받지않고, 화면에 노출시키지도 않고 넘기고자 하는 값이 있을 경우 사용할 수 있음

(식별자 : update 시 글번호)

=> 주로 primary key에 해당하는 값을 넘김

안보임 : <input type = "hidden" value="1111">

<input type = "submit">
</form>

 

(8) 자주쓰이는 버튼 정리

input태그로 버튼 만드는 법

- type : "submit/reset/button"
<input type="submit">
<input type="reset">
<input type="button" value="일반버튼">

button태그로 버튼 만드는법 (type = "submit/reset/button")

<button>제출</button>
<button type="reset">초기화</button> 
<button type="button">일반버튼</button>

- button태그에 type속성을 생략했을 경우 기본값은 submit, 그래서 form태그 내에서는 botton태그를 작성할 떄 type속성을 명시하는 것이 좋음

(9) select태그와 option태그

- 사용자에게 키보드로 직접 입력받는 것이 아니라 내가 제시한 여러 옵션들 중에서 선택할 수 있게끔 해주는 태그 
- 제출 시 현재 선택된(selected) 값이 넘어감
- 각각의 option에 value 속성값을 명시 했을 경우 value값이 전달됨
만약 value속성값을 명시 하지 않을 경우 기본적으로 option 태그의 content영역의 값이 넘어감 

<form action="0_test.html">
고냉지 메뉴 : 
<select name = "kimchi_soup">
    <option value="김치찌개">김치찌개</option>
    <option>꽁치김치찌개</option>
    <option>삼겹김치찌개</option>
    <option>순두부김치찌개</option>
 <!-- value속성값을 적으면 value값이 넘어가고 안적었다면 content 값이 넘어감 -->
</select>

(10) datalist : textbox + select 기능을 제공한다. 

좋아하는 색상 : <input type = "text" name="color" list="colorlist">
<datalist id="colorlist">
    <option>검정색</option>
    <option>빨간색</option>
    <option>파란색</option>
    <option>노란색</option>
</datalist>

<button>버튼</button>

 

< 실습 문제 > 


<fieldset> 
    <legend>회원가입양식</legend>

    <form action="test.do">
        *아이디<br>
        <input type="text" name = "userId" placeholder="영문 소문자, 숫자, 특수기호(_,-) 5~20" size = "35" maxlength="20" required >
        <button>아이디 중복확인</button> <br><br>
        *비밀번호<br>
        <input type="text" name = "userPwd" placeholder="영문 소문자, 숫자, 특수문자 8~15" size = "35" maxlength="15"><br><br>
        *비밀번호재확인 <br>
        <input type="text" name = "userPwd" placeholder="영문, 소문자, 숫자, 특수문자 8~15" size = "35" maxlength="15"><br><br>
        * 이름 <br>
        <input type="text" name = "name" size = "35"><br><br>
        * 주민등록번호 <br>
        <input type="text" name = "userNo" size = "12" maxlength="6"> - <input type="text" size = "12" maxlength="7"> <br><br>
        * 성별 <br>
        <input type="radio" name = "gender" checked>선택안함 <input type="radio" name = "gender">남자 <input type="radio" name="gender"> 여자 <br><br>
        * 생년월일 <br>
        <input type="date" name = "birthday"> <br><br>
        * 주소 <br>
        <input type="text" name="address" size="35"> <br><br>
        * 우편번호 <br>
        <input type="number" name="postNo"> <button>우편번호 찾기</button> <input type="checkbox" name="checkbox"> 우편수신동의 <br><br>
        * 이메일 <br>
        <input type="text" name="email"><input type="checkbox" name="checkbox"> 메일수신동의 <br><br>
        * 휴대폰번호 <br>
        <select name="phone1">
            <option value="010">010</option>
        </select>
        -
        <input type="text" name="phone2" size="10" maxlength="4">
        -
        <input type="text" name="phone2" size="10" maxlength="4"> <input type="checkbox"> 문자 수신 동의 <br><br>

        <button type="reset">초기화</button>
        <button type="submit">가입하기</button>

    </form>
</fieldset>