코밍이의 하루

[HTML5] 기타 다양한 폼 요소들 본문

웹언어 공부/HTML5

[HTML5] 기타 다양한 폼 요소들

코밍이 2021. 8. 26. 09:41

1. 개발 환경

구분 내용
사용 언어 HTML5, CSS3
개발환경 Visual Studio Code
참고 도서 [Do it] HTML5 + CSS3 웹 표준의 정석
웹브라우저 Chrome

 

2. 주요 폼 요소 태그

1) <button> 태그

- 폼을 전송하거나 리셋하기 위한 버튼 삽입

기본형
<button [type="submit | reset | button"]> 내용 </button>

- <button> 태그의 속성

속성 설명
submit - 폼을 서버로 전송
- <button type="submit">전송하기</button>과 같이 사용
reset - 폼에 입력한 모든 내용 초기화
- <button type="reset">다시 쓰기</button>과 같이 사용
button - 버튼 형태만 만들 뿐 자체 기능 없음
- <button type="button">주소 입력</button>과 같이 사용

2) <output> 태그

- 입력하는 값이 계산 결과라는 것을 브라우저에게 알려줌

기본형
<output [속성="속성 값"]> 내용 </output>

 

3) <progress> 태그

- 작업 진행 상태를 나타낼 때 사용

기본형
<progress values="값" [max="값"]></progress>

- <progress> 태그 속성

속성 설명
value - 작업 진행 상태를 나타내며 부동 소수저 표현
- 값은 0보다 크거나 같고 max 값보다 작거나 같아야 함
- max값이 없는 경우 1.0보다 작아야 함
max - 작업이 완료되려면 얼마나 많은 작업을 해야 하는지 부동 소수점 표현
- 값은 0보다 커야 함

 

4) <meter> 태그 

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

- 지정된 버위 내에서 해당 값이 어느 정도 차지하고 있는지 표현

- <meter> 태그 속성

속성 설명
min,max - 범위의 최솟값과 최댓값을 나타냄
- 값을 정하지 않으면 0과1로 간주
value 범위 내에서 차지하는 값을 나타냄
low "이 정도면 낮다." 라고 할 정도의 값 지정
high "이 정도면 높다." 라고 할 정도의 값 지정
optimum - "이 정도면 적당하다." 라고 할 정도의 값 지정
- optimum값이 high보다 크다면 value 값이 클수록 좋음
- optimum 값이 low보다 작다면 value 값이 작을수록 좋음

3. 소스 코드 및 실행 화면

- button-css.html

<!doctype html>
<html lang="ko">
	<head>
		<meta charset="utf-8">
		<title>웹 폼</title>
		<style>
			.subm{  /* 버튼 스타일 */
				display:block;  /* 블록 레벨 요소 */
				background-color:#fff;  /* 배경색 */
				border:1px solid #dedede;  /* 테두리 */
				cursor:pointer;  /* 마우스 포인터 */
				padding:5px 10px 6px 7px;	/* 패딩 */
			}
			.subm img{  /* 버튼 내 왼쪽 이미지 */
				border:0;  /* 테두리 없음*/
				padding:0;  /* 패딩 없음 */
				width:16px;  /* 가로 크기 */
				height:16px;  /* 세로 크기 */	
			}
			.subm:hover{  /* 버튼 위로 마우스 포인터 올렸을 때 스타일 */
				background-color:#e6efc2;  /* 배경색 */
				border:1px solid #c6d880;  /* 테두리 */
				color:#529215; /* 글자색 */
			}
		</style>
	</head>
	<body>
		<form>
			<button type="submit" class="subm">
				<img src="images/tick.png" alt=""> 전송하기
			</button>
		</form>
	</body>
</html>

button-css.html

- output.html

<!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>

output.html

- progress.html

<!doctype html>
<html lang="ko">
  <head>
		 <meta charset="utf-8">
     <title> 웹 폼</title>
     <style>
	 body {
		background-color:#fff; 
	 }
 	 ul li{
		list-style:none; 
		margin: 15px 0;	
		font-size:14px;	
	 }		 
	 </style>
  </head>
  <body>
  	<ul>
      <li>
      	<label>10초 남음</label>
		<!-- 전체 60초 중 50초 진행 -->
		<progress value="50" max="60"> </progress>
      </li>
      <li>
      	<label>진행률 30%</label>
		<!-- 전체 100 중 30만큼 진행 -->
    	<progress value="30" max="100"></progress> 
      </li>
    </ul>
  </body>
</html>

progress.html

- meter.html

<!doctype html>
<html lang="ko">
  <head>
     <meta charset="utf-8">
		 <title> 웹 폼</title>
     <style>
	 body {
		background-color:#fff; 
	 }
 	 ul li{
		list-style:none; 
		margin: 15px 0;	
		font-size:14px;	
	 }
     </style>
  </head>
  <body>
  	<ul>
      <li>
      	<label>점유율 0.8 </label>
	  	<!-- 전체 크기 1을 기준으로 0.8만큼 차지합니다 -->
		<meter value="0.8"></meter>
      </li>
      <li>
      	<label>사용량 64%</label>
		<!-- 전체 100 중에서 64만큼 차지합니다  -->
		<meter min="0" max="100" value="64"></meter>
      </li>
      <li>
      	<label>트래픽 초과</label>
		<!-- 전체 크기는 1024~10240까지인데 높다고 설정한 8192보다 현재 값 9216이 더 큽니다 -->
      	<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>
    </ul>
  </body>
</html>

meter.html