node -v
npm -v
📖 참고 📖 W3C
- 웹(Web)을 위한 표준을 개발하고 장려하는 조직
- CSS, HTML, XML 등 문서양식 표준화
- http://www.w3c.org
1️⃣ : 종료 태그가 없는 요소들
2️⃣ : 태그 생략이 가능한 요소들
3️⃣ : 속성 값 생략 가능 (속성 값에 <,>,',",=,`,공백 없으면 인용부호 생략 가능)
4️⃣ : 대소문자 구별 없음
5️⃣ : 시멘틱(semantic) 태그
<!DOCTYPE html> // DTD (문서형 정의)
<html lang="ko">
<head> // head (문서 정보 정의)
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.8">
<title>My First Web Page!</title>
</head>
<body> // body (웹 브라우저에 표시할 내용)
<!-- 웹 페이지에 표시할 내용 적기-->
<p>나의 첫 번째 웹 페이지</p>
</body>
</html>
<!DOCTYPE html>
<!--HTML 문서에서 허용하는 문자 집합을 정의하는 메타데이터 태그-->
<meta charset="UTF-8">
<!--인터넷 익스플로러(IE)의 렌더링 엔진을 강제로 최신 렌더링으로 지정하는 메타데이터-->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--기기의 화면 너비에 맞추기 위해 사용하는 메타데이터 태그-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>웹 페이지의 제목</title> // title 태그
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<base href="http://127.0.0.1:5500//images/" target="_blank"> // base 태그
<meta charset="UTF-8">
<title>base 태그 실습</title>
</head>
<body>
<img src="001.png" width="100" height="100">
<a href="http://www.daum.net">다음</a>
</body>
</html>
<!-- 외부 css 파일 사용 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="css/mystyle.css"> // link 태그
<title>link 태그 실습</title>
</head>
<body>
<p>Hello</p>
</body>
</html>
<!-- favicon 지정 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="css/mystyle.css">
<link rel="icon" type="images/icon" href="images/favicon.ico"> // link 태그
<title>link 태그 실습</title>
</head>
<body>
<p>Hello</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>style 태그 실습</title>
<style type="text/css"> // style 태그
p{
color:red;
}
</style>
</head>
<body>
<p>Hello</p>
</body>
</html>
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>script 태그 실습</title>
<script> // script 태그
console.log("Hello World");
console.log( "<h1>Hello World</h1>");
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>header 태그 실습</title>
</head>
<body>
<h1>This is header 1</h1> // hn 태그
<h2>This is header 2</h2>
<h3>This is header 3</h3>
<h4>This is header 4</h4>
<h5>This is header 5</h5>
<h6>This is header 6</h6>
</body>
</html>
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hr 태그 실습</title>
</head>
<body>
<h1>This is header 1</h1>
<hr/> // hr 태그
<h2>This is header 2</h2>
<h3>This is header 3</h3>
<hr size="10" noshade /> // size (선의 두께 지정)
<h4>This is header 4</h4>
<h5>This is header 5</h5>
<hr size="3" width="500" noshade="noshade" /> // width (선의 가로 수평 길이 지정), noshade (음영 효과 제거)
<h6>This is header 6</h6>
</body>
</html>
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>p 태그 실습</title>
</head>
<body>
<!-- 단락을 표현할 때 사용. 빈 여백 처리용이 아니다.( 빈여백은 CSS의 margin을 이용 ) -->
<p>
첫 번째 문단입니다.
</p>
<p>두 번째 문단입니다.</p>
</body>
</html>
<!--
여기서 한번더 HTML은 문서구조를 형성하고 각 부분의 특별한 의미 부여를 위해 설계되었다는것을 강조하고자 한다.
만약, 내용분리 목적으로 <p>태그를 사용한다면 <br/>태그와 똑같아진다는 의미이다.
-->
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>br 태그 실습</title>
</head>
<body>
첫 번째 라인입니다.<br>
두 번째 라인입니다.<br>
세 번째 라인입니다.<br>
</body>
</html>
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>텍스트 포맷 태그 실습</title>
</head>
<body>
<b>문자열을 진하게</b><br>
<strong>문자열 강조</strong><br>
<i>문자열을 이탤릭체로</i><br>
HTML5<sub>아래첨자로</sub><br>
HTML5<sup>위 첨자로</sup><br>
<address>
서울시 강남구 역삼동 34-21 번지
</address>
<del>20000원</del>1000원<br>
<ins>밑줄 쫘악~</ins>
</body>
</html>
📋 실행 📋
<a href="대상 경로" target="링크 연결 방식" title="링크 설명"></a>
<a href="대상 경로" target="링크 연결 방식" title="링크 설명"></a>
<!--로컬 페이지/와부 페이지 이동-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>a 태그 실습</title>
</head>
<body>
<a href="target.html" title="target.html 로컬 페이지">
로컬 페이지 이동</a><br>
<a href="http://www.daum.net" >외부 페이지 이동</a>
</body>
</html>
<!-- 웹 페이지 내부 특정 위치 이동 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>a 태그 실습</title>
</head>
<body>
<a href="#Java">java 행으로 이동</a> // id값만 지정하여 링크 생성
<a href="#oracle">Oracle 행으로 이동</a>
<a href="target2.html#html">다른페이지의 html 행으로 이동</a> // 다른 문서 내에서 링크 생성
<p>
test test test test test test test
</p>
<a id="Java">여기서 부터는 자바행</a> // id 속성을 이용해 anchor 추가
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
<br>
.....
<br>
<a id="oracle">여기서 부터는 오라클행</a>
<p>
OracleOracleOracleOracleOracleOracleOracleOracleOracleOracleOracleOracle<br>
</p>
</body>
</html>
<!-- 외부 페이지 이동 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>a 태그 실습</title>
</head>
<body>
<a href="target.html" title="target.html 로컬 페이지" target="_top">로컬 페이지 이동 _top</a><br>
<a href="target.html" title="target.html 로컬 페이지" target="_self">로컬 페이지 이동 _self</a><br>
<a href="https://www.google.com/" target="_blank">외부 페이지 이동 _blank</a>
</body>
</html>
📋 실행 📋
<img src="이미지 경로" alt="대체 텍스트">
<img src="이미지 경로" alt="이미지 설명">
<!-- -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>img 태그 실습</title>
</head>
<body>
<img src="images/main.png" alt="main 이미지"
width="200" height="200"><br>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>table 태그 실습</title>
</head>
<body>
<!--
테이블의 머리 : thead
하나이상의 몸체: tbody
바닥행 : tfoot ==> 반드시 tbody 앞에 사용
행을 그룹화하면 브라우저의 스크롤을 통해 테이블을 탐색할때 thead와 tfoot 요소는 고정하고 tbody 요소만 스크롤되게 할수 있다.
-->
<table border="1">
<thead>
<tr>
<th>월요일</th>
<th>저축</th>
</tr>
</thead>
<tfoot>
<tr>
<td>합계</td>
<td>18000</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>1월</td>
<td>10000</td>
</tr>
<tr>
<td>2월</td>
<td>8000</td>
</tr>
</tbody>
</table>
</body>
</html>
📋 실행 📋
<table>
<caption>표 제목</caption>
</table>
tr 태그 : 표 내부의 행 태그
th 태그 : 행 내부의 제목 나타내는 열 태그
td 태그 : 행 내부의 일반 데이터 열 태그
<table>
<tr>
<th>제목</th>
<th scope="col">구분</th>
<td>내용</td>
</tr>
</table>
📋 코드 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>table 태그 실습</title>
</head>
<body>
<table border="1">
<tr>
<th>1열 제목</th>
<th>2열 제목</th>
</tr>
<tr>
<td>1행 1열</td>
<td>1행 2열</td>
</tr>
<tr>
<td>2행 1열</td>
<td>2행 2열</td>
</tr>
</table>
<br />
<table border="1">
<caption>캡션 실습</caption>
<tr>
<th>1열 제목</th>
<th>2열 제목</th>
</tr>
<tr>
<td>1행 1열</td>
<td>1행 2열</td>
</tr>
<tr>
<td>2행 1열</td>
<td>2행 2열</td>
</tr>
</table>
<br />
<table border="1">
<tr>
<td>
<p>첫 번째 단락입니다.</p>
<p>두 번째 단락입니다.</p>
</td>
<td>중첩 테이블:
<table border="1">
<tr>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>C</td>
<td>D</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>중첩 리스트:
<ul>
<li>사과</li>
<li>바나나</li>
<li>딸기</li>
</ul>
</td>
<td>안녕하세요</td>
</tr>
</table>
</body>
</html>
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>table 태그 실습</title>
</head>
<body>
<table border='1'>
<tr>
<th>이름</th>
<th colspan="2">전화번호</th>
</tr>
<tr>
<td>홍길동</td>
<td>55577854</td>
<td>55577855</td>
</tr>
</table>
<table border='1'>
<tr>
<th>이름</th>
<td>홍길동</td>
</tr>
<tr>
<th rowspan="2">전화번호</th>
<td>55577854</td>
</tr>
<tr>
<td>55577855</td>
</tr>
</table>
</body>
</html>
📋 실행 📋
<col>
<colgroup span="그룹화할 열의 개수">
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>list 태그 실습</title>
</head>
<body>
<ul type="circle">
<li>사과
<li>배
</ul>
<ul type="square">
<li>사과
<li>배
</ul>
<ul type="disc">
<li>사과
<li>배
</ul>
</body>
</html>
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>list 태그 실습</title>
</head>
<body>
<ol>
<li>사과</li>
<li>배</li>
</ol>
<ol start="3">
<li>사과</li>
<li>배</li>
</ol>
</body>
</html>
📋 실행 📋
본문과 무관한 내용의 간접적인 컨텐츠 섹션 (없어져도 상관X)
배너광고 등에 사용
📋 코드 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>기본구성</title>
</head>
<body>
<!--
semantic : '의미를 갖는다'는 뜻으로, 각 태그가 스스로 의미를 지닌다는 뜻
header : 사이트에 대한 소개 정보나 메인 메뉴, 사이트 로고 등이 포함됨
nav : 사이트의 메뉴나 링크 같은 네비게이션 요소들이 포함
section : 실제 문서 내용이 들어감
article : 문서 내용이 많을 경우 여러 개의 <article>요소로 나눌 수 있음
aside : 문서의 주요 내용 외의 내용들을 넣어 문서의 주영역 주변에 배치
footer : 작성자 정보나 저작권 정보, 또는 관련 문서 링크 등 부가 정보들을 담고
있음. 주로 문서 하단에 배치
-->
<header id="page_header">
<h1>서울 고등학교 홈페이지</h1>
<nav>
<ul>
<li><a href="1.html">1학년</a></li>
<li><a href="2.html">2학년</a></li>
<li><a href="3.html">3학년</a></li>
</ul>
</nav>
</header>
<section>
<header>
<h3>이달의 인물</h3>
</header>
<article>
<p>
교내 영상제에서 최우수상을 받은 이빛나양을 만나봅니다.
</p>
</article>
<header>
<h3>지난달의 인물</h3>
</header>
<article>
<p>
교내 영상제에서 장려상을 받은 조조군을 만나봅니다.
</p>
</article>
</section>
<footer id="page_footer">
2012 서울고등학교
</footer>
</body>
</html>
📋 실행 📋
📋 코드 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Blog Site</title>
<style type="text/css">
/*페이지의 내용을 가운데에 놓고, 기본적인 폰트를 설정*/
body{
width:960px;
margin:auto;
font-family:Arial,"MS Trebuchet", sans-serif;
}
/*헤더의 넓이를 정함*/
header#page_header{
width:100%;
}
/*네비게이션을 가로 바 형대로 만듬*/
header#page_header nav ul, #page_footer nav ul{
list-style:none;
margin:0;
padding:0;
}
/*margin : 상 우 하 좌*/
#page_header nav ul li, footer#page_footer nav ul li{
padding:0;
margin:0 20px 0 0;
display:inline;
}
p{
margin:0 20px 0 0;
}
section#posts{
float:left;
width:74%;
}
section#posts aside{
float:right;
width:35%;
margin-left:5%;
font-size:20px;
line-height:40px;
}
aside{
float:left;
width:25%;
}
/*float를 해제해서 페이지 하단에 안착시킴*/
footer{
clear:both;
width:100%;
text-align:center;
}
footer li{
display: inline;
}
</style>
</head>
<body>
<!-- header : 회사의 로고,타이틀,메뉴 -->
<header id="page_header">
<h1>Star Blog</h1>
<!-- nav : 메뉴 -->
<nav>
<ul>
<li><a href="1.html">최근 글</a></li>
<li><a href="2.html">이전 글</a></li>
<li><a href="3.html">공헌자 글</a></li>
<li><a href="4.html">연락처(Tel)</a></li>
</ul>
</nav>
</header>
<!-- section : 페이지의 논리적 영역(내용 부분) -->
<section id="posts">
<article class="post">
<!-- 내용의 작은 제목 -->
<header>
<h2>얼마나 많이 기록해 둬야 되겠습니까?</h2>
<p>Posted by Brain on 2012.10.08</p>
</header>
<!-- aside : 인용구,덧붙이고 싶은 생각, 관련된 링크 -->
<aside>
<p>
"물건을 팔 때는 거절할 기회를 주어선 안 됩니다."
</p>
</aside>
<p>
물건을 팔 때의 대원칙은, 고객이 빈손으로 돌아가게 만들면 이미 글렀다는 겁니다.
다시 오려고 하지 않을테니까요. 따라서 고객을 대할 때는 적극적인 자세를 취해야
합니다. 그렇다고 너무 오버하면 고객이 겁을 먹고 돌아가 버릴 수도 있으니 조심해야
합니다.
</p>
<p>
대화가 끊어지지 않게 이어 나가는 한 가지 요령을 알려드리죠. 네, 아뇨라고 대답할
수 있는 질문을 피하라는 겁니다. 예를 들어, 서비스 플랜을 판매중이라면,절대
"3년 서비스 플랜과 5년 서비스 플랜이 있는데, 들어보시겠습니까?"
하는 식으로 말문을 열어선 안 됩니다. 이런 식으로 해야죠. "3년 서비스
플랜과 5년 서비스 플랜이 있는데, 그 중 어떤 것이 더 좋으십니까?"
언뜻 보기엔 똑같은 질문으로 보이고, 고객이 거절할 수 있다는 점은 마찬가지지만,
두 번째 질문은 단순히 "아뇨"라고 말할 수 없기 때문에 거절하기가 더
힘듭니다.
</p>
<p><a href="comments.html">25 Comments</a></p>
</article>
</section>
<!-- 사이드 바 -->
<aside>
<nav>
<h3>이전 글</h3>
<ul>
<li><a href="1.html">2012년1월</a></li>
<li><a href="2.html">2012년2월</a></li>
<li><a href="3.html">2012년3월</a></li>
<li><a href="4.html">2012년4월</a></li>
<li><a href="5.html">2012년5월</a></li>
<li><a href="6.html">2012년6월</a></li>
<li><a href="7.html">2012년7월</a></li>
</ul>
</nav>
</aside>
<!-- footer : 저작권이나 사이트 소유자에 대한 정보 등 -->
<footer>
<p>© 2012 Star Blog</p>
<ul>
<li><a href="home.html">홈페이지</a></li>
<li><a href="about.html">회사소개</a></li>
<li><a href="address.html">연락처</a></li>
<li><a href="board.html">게시판</a></li>
</ul>
</footer>
</body>
</html>
📋 실행 📋
📋 코드 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>HTML5</title>
<link rel="stylesheet" href="css/html5.css">
</head>
<body>
<header>
<h1>Header</h1>
<h2>Subtitle</h2>
<h4>HTML5 Rocks!</h4>
</header>
<div id="container">
<nav>
<h3>Nav</h3>
<a href="">Link 1</a>
<a href="">Link 2</a>
<a href="">Link 3</a>
</nav>
<section>
<article>
<header>
<h1>Article Header</h1>
</header>
<p>Lorem ipsum dolor HTML5 nunc aut nunquam sit amet, consectetur adipiscing elit. Vivamus at est eros, vel fringilla urna.</p>
<p>Per inceptos himenaeos. Quisque feugiat, justo at vehicula pellentesque, turpis lorem dictum nunc.</p>
<footer>
<h2>Article Footer</h2>
</footer>
</article>
<article>
<header>
<h1>Article Header</h1>
</header>
<p>HTML5: "Lorem ipsum dolor nunc aut nunquam sit amet, consectetur adipiscing elit. Vivamus at est eros, vel fringilla urna. Pellentesque odio</p>
<footer>
<h2>Article Footer</h2>
</footer>
</article>
</section>
<aside>
<h3>Aside</h3>
<p>HTML5: "Lorem ipsum dolor nunc aut nunquam sit amet, consectetur adipiscing elit. Vivamus at est eros, vel fringilla urna. Pellentesque odio rhoncus</p>
</aside>
<footer>
<h2>Footer</h2>
</footer>
</div>
</body>
</html>
📋 실행 📋
block level 태그
다른 HTML 태그(블록 요소와 인라인 요소)들을 그룹화하기 위한 컨테이너 역할
브라우저에서 보여주기 전후로 line break 삽입됨
CSS와 같이 사용하여 레이아웃 및 태그 그룹핑 목적으로 사용
width와 height 속성을 설정하여 너비와 높이 지정
📋 코드 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>div 태그 실습</title>
</head>
<body>
<!-- 컨텐츠나 특정요소를 묶을때 사용 , 무분별하게 사용하지 말고, 논리그룹으로 만들때 사용권장-->
<div>
<h1>오만과 편견</h1>
<div>
<h2>1권</h2>
<div>
<h3>1장</h3>
<p>돈 많은 독신남에게 아내가 필요하다는 것은....</p>
<p>이런 진실은 주변 이웃들의 마음 속에 단단히 박혀...</p>
</div>
</div>
</div>
</body>
</html>
📋 실행 📋
📋 코드 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>div 태그 실습</title>
</head>
<body>
<div id="container" style="width: 500px">
<div id="header" style="background-color: #FFA500;">
<h1 style="margin-bottom: 0;">Main Title of Web Page</h1>
</div>
<div id="menu"
style="background-color: #FFD700; height: 200px; width: 100px; float: left;">
<b>Menu</b><br>HTML<br>CSS<br>JavaScript
</div>
<div id="content"
style="background-color: #EEEEEE; height: 200px; width: 400px; float: left;">Content
goes here</div>
<div id="footer"
style="background-color: #FFA500; clear: both; text-align: center;">Copyright
© W3Schools.com</div>
</div>
</body>
</html>
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>span 태그 실습</title>
<style type="text/css">
#red{
color: red;
font-size: 100px;
}
</style>
</head>
<body>
<h3>1장</h3>
<p>돈 많은<span id="red">독신남</span> 에게 아내가 필요하다는 것은....</p>
<p>이런 진실은 주변 이웃들의 마음 속에 단단히 박혀...</p>
</body>
</html>
📋 실행 📋
<form action="서버 url" method="get 또는 post"></form>
<form name=""
action="target"
method="get|post"
enctype="">
</form>
📖 참고 📖
- Http method : 클라이언트에서 서버로 데이터를 보내는 방식의 차이 (GET과 POST)
- GET
- 보내는 데이터를 url에 append해서 보내는 방식
- 평문을 인코딩하여 전송 (민감한 정보 노출)
- www.aa.com?name=홍길동&key2=value2
- querystring 형식 (?로 시작하고 key = value를 &로 연결)
- 길이 제한 한계
- 조회, 즐겨찾기 추가
- POST
- 데이터를 Stream의 body에 append해서 보내는 방식
- 변경 (등록, 수정, 삭제)
- 민감한 정보가 브라우저의 개발자 도구에서는 보여지기 때문에 암호화 해서 전달
<input type="종류" name="이름" value="초깃값">
text 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form>
이름 <input type="text" name="username" id="username"
autofocus required placeholder="이름 입력">
<input type="submit" value="전송">
</form>
</body>
</html>
📋 실행 📋
radio 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="get">
<input type="radio" name="gender" value="male" checked>남<br>
<input type="radio" name="gender" value="female">여<br>
</form>
</body>
</html>
📋 실행 📋
checkbox 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="post">
<input type="checkbox" name="fruits" value="apple" checked>사과<br>
<input type="checkbox" name="fruits" value="banana">바나나<br>
</form>
</body>
</html>
📋 실행 📋
submit 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="get">
<textarea name="message" rows="10" cols="30">여러 라인 사용 가능
</textarea><br>
<input type="submit" value="전송">
<input type="reset" value="취소">
</form>
</body>
</html>
📋 실행 📋
file 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
var fileInfos = [];
$("#theFile").change( function(event){
var selectedFiles = this.files;
for( var i = 0; i < selectedFiles.length ; i++ ){
var file = selectedFiles[i];
fileInfos.push("파일이름: " + file.name + " 크기 : " + file.size);
}
$("#fileDiv").text(fileInfos);
});
});
</script>
<form name="myForm" action="target.html" method="post"
enctype="multipart/form-data">
파일선택1:<input type="file" name="file" id="theFile" multiple="multiple" accept="image/*" ><br>
<div id="fileDiv"></div>
파일선택2:<input type="file" name="theFile"><br>
<input type="submit" value="전송">
<input type="reset" value="취소">
</form>
</body>
</html>
📋 실행 📋
number 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="post">
예상 시간
<input type="number" name="estimated_hours"
id="estimated_hours" min="0" max="1000" step="2">
<input type="submit" value="전송">
</form>
</body>
</html>
📋 실행 📋
email 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="post">
이메일
<input type="email" name="useremail" required="required"
placeholder="aaa@bbb.com" multiple>
<input type="submit" value="전송">
</form>
</body>
</html>
📋 실행 📋
range 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
</script>
<script>
$(document).ready(function() {
$("#range").change(function(event) {
$("#rangeValue").text(this.value);
});
});
</script>
<form name="myForm" action="target.html" method="post">
range
<input type="range" name="range" id="range" min="1" max="50"
step="2" value="20">
값:<span id="rangeValue"></span><br>
<input type="submit" value="전송">
</form>
</body>
</html>
📋 실행 📋
date 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="post">
date
<input type="date" name="date" id="date">
<input type="submit" value="전송">
</form>
</body>
</html>
📋 실행 📋
search 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<!--
search : search 필드
크롬과 사파리에서 실행
-->
<form name="myForm" action="target.html" method="post">
검색
<input type="search" name="search" id="search">
<input type="submit" value="전송">
</form>
</body>
</html>
📋 실행 📋
color 속성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
</script>
<script>
$(document).ready(function() {
$("#color").change(function(event) {
$("#colorValue").text(this.value);
});
});
</script>
<form name="myForm" action="target.html" method="post">
color
<input type="color" name="color" id="color">
값:<span id="colorValue"></span>
<input type="submit" value="전송">
</form>
</body>
</html>
📋 실행 📋
hidden 속성
📋 코드 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form>
이름 <input type="text" name="username" id="username"
autofocus required placeholder="이름 입력"><br>
나이 <input type="hidden" name="age" id="age"><br>
<input type="submit" value="전송">
</form>
</body>
</html>
📋 실행 📋
상호작용 요소를 fieldset 태그를 사용해 그룹을 짓고, 그룹별로 박스 모양의 테두리 생성
그룹 지은 요소들을 lengend 태그로 이름 짓기
<form action="#">
<fieldset>
<legend> 그룹 이름 </legend>
</fieldset>
</form>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="post">
<fieldset>
<legend>로그인</legend>
아이디: <input type="text" name="userid" value="inky4832"><br>
비밀번호: <input type="text" name="passwd" ><br>
</fieldset>
</form>
</body>
</html>
📋 실행 📋
<form action="#" method="post">
<fieldset>
<legend>블로그 글쓰기</legend>
<p>
<label for="title">제목
<input type="text" id="title" name="title">
</label>
</p>
<p>
<label for="desc">내용
<textarea id="desc" name="desc"></textarea>
</label>
</p>
</fieldset>
</form>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="post">
<textarea name="message" rows="10" cols="30">여러 라인 사용 가능
</textarea>
</form>
</body>
</html>
📋 실행 📋
<select>
<optgroup label="그룹 이름">
<option value="서버에 전송할 값">웹 브라우저에 표시할 값</option>
</optgroup>
</select>
size 속성
multiple 속성
selected 속성
📋 코드 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 태그 실습</title>
</head>
<body>
<form name="myForm" action="target.html" method="post">
<select name="cars">
<option value="">선택하시오</option>
<option value="volvo">볼보</option>
<option value="saab">사브</option>
<option value="fiat">피아트</option>
<option value="audi" selected>아우디</option>
</select>
</form>
</body>
</html>
📋 실행 📋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Popup 연습</title>
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('.popup').click(function(event){
//preventDefault():이벤트 기본 동작을 막는 역할
// 여기서는 브라우저가 링크를 따라서 해당
// 페이지를 열지 못하게 함
event.preventDefault();
//this : 이벤트가 발생한 태그
var href = $(this).attr('href');//href의 속성 값 반환
//data-width 속성 값 반환
var width = $(this).attr('data-width');
//data-height 속성 값 반환
var height = $(this).attr('data-height');
//팝업 창 생성
window.open(href,'popup','width='+width+',height='+height+'');
});
});
</script>
</head>
<body>
<h1>인재 정보</h1>
<ul>
<li><a href="target.html"
data-width="800"
data-height="400"
title="Holiday Pay"
class="popup">공휴일 급여 정책</a></li>
</ul>
</body>
</html>
📋 실행 📋
data-
접두어로 시작<button type="종류">버튼 내용</button>
<button type="submit">
<img src="facebook.png" alt="페이스북 버튼">
페이스북에 등록하기
</button>
<input type="text" disabled> // input 불가
<button type="button" disabled> 비활성 </button> // button 불가
<input type="password" readonly>
<textarea readonly></textarea>
<input type="url" maxlength="4">
<textarea maxlength="4"></textarea>
<input type="checkbox" id="orange" checked>
<input type="tel" placeholder="전화번호 입력">
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>특수문자 실습</title>
</head>
<body>
<p>3<4</p>
<p>30>4</p>
<p>"홍길동"</p>
<p>이순신 유관순</p>
</body>
</body>
</html>
📋 실행 📋
<p class="red-color">...</p>
<h1 id="title">...</h1>
<p><span title="world wide web consortium">W3C</span>은 국제 웹 표준 개발 기구</p>
<html lang="ko">
<p data-name="spider-Man" data-hero="true">...</p>
https://www.w3schools.com/html/default.asp
https://caniuse.com/input-number