<Today's Goals>
- 다양한 태그를 활용하여 상품주문서 폼 만들기
- <select>,<option><optgroup>태그 활용하여 드롭다운 목록 만들기
- <datalist>,<option> 태그
- <textarea> 태그
- <button> 태그
<What i learned>
- 주문서 작성할 때 예시 화면이랑 수량 입력란의 길이가 달라서 스타일 오류인줄 알고 몇번이나 체크하였으나 스타일 오류가 아니었다. 처음부터 끝까지 체크해보니, 수량 입력란의<input type="number" max="수량">에서 max 부분에 오타가 있었다. 최대 수량이 적용되지않아서 입력란이 크게 보이는 것이었다. 오탈자 항상 체크하자.
<Questions>
- Q : <select>태그 와 <datalist>태그의 차이는?
A: <select>태그는 오직 하나의 옵션만을 선택할 수 있는 form input type이다.
<datalist> 태그는 list에서 주어지는 어떤 옵션이든 선택이 가능하다.
<datalist> 자체에 input을 넣어서 옵션을 추가할 수 있다. 하지만 <select>는 안된다. form input type가 아니다.
참고 문헌 사이트
:https://www.geeksforgeeks.org/difference-between-datalist-select-tags-in-html/
- Q: <button>태그 속성에서 'button'은 자체 기능이 없이 버튼 생성만 한다는데 그럼 어떤 경우에 사용되는지?
A: <button> 을 눌렀을 때 실행될 event를 설정할 수 있다. <button>의 type을 button으로 설정하지 않으면 submit이 기본으로 적용된다.
<상품주문서 작성하기>
1. 주문서 영역 나누기
<Fieldset>,<legend>태그 사용하여 큰 영역을 나눈다. (개인정보, 배송지 정보, 주문 정보 등)
<fieldset>
<lagend>개인정보</legend>
</fieldset>
2. 정보를 입력할 폼요소 추가한다.
<ul>
<li>
<label for="uname" class="title">이름</label>
<input type="text" id="uname" placeholder="여백없이 입력" required>
</li>
<li>
<label for="tell" class="title">연락처</label>
<input type="tel" id="tell" placeholder="연락가능한 번호">
</li>
</ul>
3. checkbox를 이용해서 주문정보 입력란을 추가한다.
<fieldset>
<legend>주문 정보</legend>
<ul>
<li>
<label><input type="checkbox">과테말라 안티구아 (100g) </label>
<label><input type="number" value="0" min="0" max="5">개 </label>
</li>
<li>
<label><input type="checkbox">인도네시아 만델링 (100g) </label>
<label><input type="number" value="0" min="0" max="5">개 </label>
</li>
<li>
<label><input type="checkbox">탐라는도다(블렌딩) (100g) </label>
<label><input type="number" value="0" min="0" max="5">개 </label>
</li>
</ul>
</fieldset>
4. 전송버튼을 추가한다.
<input type="submit" value="주문하기">
<input type="reset" value="다시 작성">
5. CSS소스를 추가해서 디자인 변경
상품 주문서
<select>,<optgroup>,<option>태그를 사용해 드롭다운 목록 만들기
사용자가 내용을 입력하지 않고 여러 옵션 중에 선택하도록 할 때 드롭다운 목록을 사용한다.
공간을 최소한으로 사용하면서 여러 옵션을 표시할 수 있다.
기본적으로 <select>와<option>태그를 사용하지만, <optgroup>을 이용해 옵션을 묶어서 표시할 수 있다.
<select>태그의 속성
- size : 화면에 표시될 드롭다운 메뉴의 항목 개수 지정할 수 있다.
- multiple : ctrl키를 누른 상태로 복수의 항목을 선택할 수 있다.
<option>태그의 속성
- value : 옵션을 선택했을 때 넘겨질 값을 지정한다.
- selected : 화면에 표시될 때 기본으로 선택되어 있는 옵션을 지정한다.
여름방학 특강 신청
<datalist>태그, <option>태그
<datalist>태그를 사용하면 데이터 목록중에서 값을 선택하도록 만들 수 있다.
<input type="text" list="데이터 목록 id">
<datalist id="데이터 목록 id">
<option>...</option>
<option>...</option>
</datalist>
<textarea> 태그
직접 여러줄의 텍스트를 입력하는 영역을 만들 수도 있습니다. 게시판에서 게시물을 입력하거나 회원가입 양식에서 사용자 약관을 표시할 때 자주 사용한다. <textarea> 태그 너비 크기를 지정하는 cols속성 줄을 표시할지 지정하는 rows속성을 사용한다.
<textarea>태그 속성
- name : 다른 폼 요소와 구분하기 위해 텍스트 영역의 이름을 지정한다.
- cols : 텍스트 영역의 가로 너비를 문자 단위로 지정한다.
- rows : 텍스트 영역의 새로 길이를 줄 단위로 지정한다. 지정한 숫자보다 줄 개수가 많아지면 스크롤 막대가 생성된다.
<button>태그
type 속성으로 버튼이 활성화 되었을 때 어떤 동작을 할지 지정한다.
- submit : 폼을 서버로 전송한다.
- reset : 폼에 입력한 모든 내용을 초기화시킨다.
- button : 버튼 형태만 만들 뿐 자체에 기능은 없다.
<input type="submit" value="전송하기">
<button type="submit">전송하기</button>
위의 두 방법은 비슷한 용도로 사용할 수 있다.
<차이점>
1. <button>태그는 화면 낭독기에서 버튼이 있다는 것을 읽고 전달할 수 있다.
2. <button>태그를 사용한 버튼에는 콘텐츠를 포함할 수 있기 때문에 아이콘을 추가할 수 있고, CSS를 이용해 원하는 형태로 변형이 가능하다.
'Language > HTML' 카테고리의 다른 글
<img>와 background-image 속성 /Semantic Web, Semantic Tags (0) | 2023.03.08 |
---|---|
HTML5 / input 태그 / input type 종류 (0) | 2022.04.10 |
HTML5 / form 태그 / label태그 / fieldset 태그와 legend 태그 (0) | 2022.04.09 |
HTML5 anchor/ image map (1) | 2022.04.08 |
HTML5 하이퍼 링크/ 이미지 링크/ 텍스트 링크 (1) | 2022.04.06 |