1. HTML 기본 문법
2. HTML Head
3. HTML Body
4. Layout
5. Contents
6. 멀티미디어
7. 리스트
8. 표
9. Iframe
10. Form
11. 설명과 입력
12. HTML 주의사항
- Material Icon Theme - 확장자에 따른 아이콘 표기
- indent-rainbow - 들여쓰기 가시성 높임
- Live Server - 작업의 결과를 live로 확인
태그
콘텐츠를 가지는 태그 :
ex) <div> content <div/>
콘텐츠를 가지지 않는 태그 :
ex) <br />
속성과 값
속성(Attribute)은 태그가 가지는 고유한 값(Value)과 모든 태그에 사용가능한 전역속성이 있다.
<tag attribute = value> content <tag/>
HTML 기본 문서
<!DOCTYPE html>: 문서 버전
<html lang="ko">: HTML 문서 시작 선언 및 문서 기본 언어 설정
<head>: 문서에 필요한 정보가 기입되는 곳
<title>문서 제목</title>: 문서 제목
<body> 내용 </body>: 실제 사용자가 눈으로 볼 수 있는 문서의 내용이 입력되는 곳
Head란?
사람의 눈에 보이지는 않지만 문서의 정보를 담을 수 있는 영역.
Head에 담을 수 있는 정보의 종류
<title><meta> <meta charset="ISO-8859-1"><meta name="description" content="문서 설명">CSS, Script
<!-- 콘텐츠를 가지는 태그, css를 넣어서 사용 -->
<!-- 문서 글자색을 파란색으로 -->
<style>
body {
color: blue;
}
</style>
<!-- style의 길이가 길어질 경우 link로 대체 가능 -->
<!-- css도 별도의 파일로 관리 가능 -->
<link rel="stylesheet" href="style.css"/>
<!-- 콘텐츠를 담는 태그 -->
<!--콘텐츠 방식-->
<script>
const hello = 'world';
console.log(hello);
</script>
<!--링크 방식-->
<script src="script.js"></script>
Body란?
Block
<div>, <article>, <section>Inline
<span>, <a>, <strong>Inline-block
<div> </div>
콘텐츠 분할 요소
단순히 구역을 나누기 위한 태그
<header> </header>
글의 제목, 작성일 등의 주요정보를 담는 태그
<footer> </footer>
페이지의 바닥쪽에 사용되며 저작권 정보, 연락처 등 부차적인 정보를 담는 태그
<main> </main>
페이지의 가장 큰 부분으로 주요 콘텐츠를 담는 태그
한 페이지에 한번만 나온다.
<section> </section>
콘텐츠의 구역을 나누는 태그
<article> </article>
구역 안에서 작성된 독립적인 정보를 전달하는 태그
<aside> </aside>
문서의 내용의 부가적인 정보를 전달하는 태그
제목 태그 (h1 ~ h6)
문단 태그 (p)
서식 태그
<!-- <b>, <strong> : 글씨의 두께를 조절 -->
<b> : 태그의 의미를 가지지 않고 글씨만 굵게 변경
<strong> : 굵은 글씨로 변경 후 강조의 의미를 부여
<!-- i, em : 글씨의 기울기를 조절 -->
<i> : 기울임과 동시에 텍스트가 문단의 내용과 구분되어야 하는 경우 사용 가능
<em> : 기울임과 내용의 강조를 나타냄
<u>
글씨에 밑줄을 넣고 주석을 가지는 단어임을 나타낼 수 있음
단순 밑줄로 사용해선 안됨
<!-- <s>, <del> : 글씨에 취소선 추가 -->
<s> : 시각적인 취소선만 추가되고 접근성 기기에 취소에 대한 안내를 하지 않음
<del> : 문서에서 제거된 텍스트를 나타냄, ins 태그와 함께 사용시 제거된 텍스트 옆에 추가된 텍스트 표현이 가능하다
<a>
클릭하면 페이지를 이동할 수 있는 링크 요소
<a href> : 이동하고자 하는 파일
<a target> : 이동해야 할 링크
<img> </img>
문서 내 이미지를 넣을 수 있는 태그
src : 이미지의 경로
alt : 이미지 로딩에 문제가 발생했을 때 대체 텍스트를 띄움
----------------------------
<figure>
<img src="/logo.png" alt="로고">
<figcaption> 핫도그 이미지 </figcation>
</figure>
----------------------------
<figure> </figure>
하나의 독립적인 콘텐츠로 분리하는 태그
<figcaption> </figcation>
figure에 대한 설명을 넣을 수 있는 태그
<video> </video>
문서 내에서 영상을 첨부할 수 있는 태그
src : 비디오를 문서 내에 첨부
poster : 비디오가 로드되기 전에 포스터를 보여줌
source : 여러 타입의 비디오 제공 가능
<audio> </audio>
문서 내에서 소리을 첨부할 수 있는 태그
src : 소리를 문서 내에 첨부
source : 여러 타입의 오디오 제공 가능
controls : 재생/정지 버튼 등이 있는 컨트롤러 제공
SVG(Scalable Vector Graphic)
<!-- 정렬되지 않은 목록 태그 <ul> -->
<ul>
<li> </li>
</ul>
<!-- 정렬된 목록 태그 <ol> -->
<ol>
<li> </li>
</ol>
<ul>,<ol> 태그의 자식으로는 <li> 태그만 가능
<!-- 설명 목록 태그 <dl> -->
<dl>
<dt>Chrome</dt>
<dd>구글 웹브라우저</dd>
</dl>
<dl> : 설명 목록 태그
<dt> : Content
<dd> : <dt> 태그에 사용된 단어 혹은 내용의 설명을 <dd> 태그에 작성
주로 용어사전이나 키-값이 있는 쌍의 목록을 나타낼 때 사용
<dt> 태그를 여러개 작성하고 하나의 <dd> 태그를 작성하는 것으로 여러 개의 용어를 설명 가능
반대로 <dt> 태그 하나에 여러개의 <dd> 태그를 가질 수 있음
<table>
<thead>
<tr>
<th>열 제목</th>
</tr>
</thead>
<tbody>
<tr>
<td> 행1 열1 </td>
<td> 행1 열2 </td>
</tr>
</tbody>
</table>
table
th
thead
tbody
tfoot
표 바닥글 요소 태그
HTML4에서는 tbody보다 앞에 들어가야 했으니
HTML5 버전부터는 제일 마지막에 배치되면 된다.
( thead -> tbody -> tfoot )
caption
<caption>를 사용하여 표가 가진 데이터에 대한 설명을 넣을 수 있다.<iframe src="https://example.com" frameborder="0"></iframe>
<a target>을 이용해 iframe에서 URL이 열리게 할 수 있다.다만 외부 사이트이기 때문에 보안 이슈가 생길 수도 있고 외부 페이지에서 오류가 발생할 경우 이를 호출한 페이지에서도 영향을 받을 수 있다.
<form action="./submit.html" method="get">
<label for="name">이름</label>
<input id="name" type="text" name="name">
<button type="submit">전송</button>
</form>
<input>, <selectbox>, <textarea>가 있음.label
input
<form action="/link.php" method="get">
이름 : <input type="text" name="st_name"><br>
학번 : <input type="text" name="st_id"><br>
학과 : <input type="text" name="department"><br>
<input type="submit">
</form>
자주 사용되는 input 타입
- checkbox : input을 체크박스 형태로 만든다.
- radio : 라디오 버튼으로 만든다.
- file : 파일을 첨부할 수 있게 만든다.
- button : value 속성에 입력된 값을 이름으로 갖는 버튼을 만든다.
- hidden : input을 시각적으로 숨겨준다. 정보 제출 시 value 속성에 입력된 값은 전송된다.
select
<select name="selectbox">
<option> 선택하세요 </option>
</select>
textarea
input에 사용하면 좋은 속성
- readonly : 사용자가 수정할 수 없는 읽기전용으로 만든다.
- reqiured : form이 제출될 때 필수 입력 사항으로 만든다.
- placeholder : input, textarea에 부가 설명을 입력해 둘 수 있다.
- disabled : 요소가 비활성화 되며 정보 제출 시 값이 제출되지 않는다.
1. 대소문자 주의
- 태그는 가능한 소문자로 작성할 것
2. 닫는 태그 생략 주의
- 콘텐츠를 가지는 태그는 닫는 태그가 필수
3. 한글 사용
- 개발은 영어로 할 것
4. ID의 중복
- ID는 한 문서, 한 페이지 내에 "한 번만" 나와야하는 "고유 아이디"
5. 계층 구조 유지
- 코드가 예뻐야함, 계층(depth)를 잘 지킬 것
- depth가 잘 맞아야 코드가 복잡했을 때 유지 보수 용이
6. 동알한 의미의 태그 중첩 금지
- ex) b, strong
- 링크 이동하는 a 태그, 클릭할 수 있는 button 태그의 중첩 등등