이번 강의에서는 자주 사용하는 태그들을 확인했다.
강의에서 언급되는 태그들은 일단 다 외우려고 노력했지만 뭐 안외워지면 나중에 찾아보면 되겠지!
일단 정리해두고 필요할 때 마다 꺼내보자
종류가 다양한 만큼 의미에 맞는 태그를 사용하여 사람 뿐만아니라 브라우저가 잘 이해할 수 있도록 (시멘틱마크업) 하는 것이 매우 중요하다
대부분의 웹페이지들은 실제 20~30개의 태그만 사용한다고 하니
많이 쓰이는 태그들은 잘 정리하고 부족한 부분은 그때그때 찾아서 사용하며 익히자
<h1>역사</h1>
<h2>개발</h2>
<p> ... </p>
<br> 빈태그 사용하기
혹은 <p></p> 로 개행하기
<b>bold</b>, <i>italic</i>, <u>underline</u>, <s>strike</s>
시멘틱 마크업 : 의미를 잘 전달하도록 문서를 작성하는 것
정보를 얼마나 잘 구조화 하느냐는 html을 배우면 계속 따라다닐 숙제일것이다. 시멘틱 Semantic은 기계(브라우저, 컴퓨터)가 잘 이해할 수 있도록 하는 것이다. 이는 적절한 요소를 사용하는 것에서 시작하기에 정해진 약속을 잘 지키면 되는 것이다.
구체적으로 마크업 할 때에는 의미에 맞는 태그, 요소를 사용하는 것이고
문서를 표현할 때에는 구조화를 잘 해주면 된다.
정해진 약속대로 코드를 작성하게 되면 기계 뿐만아니라 사람도 이해하기 쉬운 코드가 된다.
다음 왼쪽의 태그와 오른쪽의 태그를 비교하며 시멘틱마크업을 이해하고 넘어가자
<b>굵은</b> vs <strong>중요한</strong>
<i>기울어진</i> vs <em>강조하는</em>
<u>밑줄친</u> vs <ins>새롭게 추가된</ins>
<s>중간선이 있는</s> vs <del>삭제된</del>
<!-- 잘 이해하자. 이 둘을 실행하면 "같은 모습"으로 출력되나
실제로는 그 의미가 다르다.
우리의 눈으로는 같아 보이지만 브라우저는 이 두 태그를 다르게 이해하는 것이다!! -->
HTML 의 HT(HyperText)는 링크를 의미하며 그 링크를 만드는 태그를 앵커 태그 라고한다.
앵커 태그를 이용해 다른 페이지로 이동하거나 현재 페이지 내에서 특정 위치로 초점을 이동시킬 수 있다. HTML의 가장 큰 특징이 되는 태그이며 그만큼 중요하고 자주 사용되는 태그이다
<a></a> : 앵커태그, a태그, 앵커, 링크 등 여러 이름으로 불림
<a href="http://www.naver.com/" target=_blank>네이버</a>
<!--페이지 최상단으로 옮겨주는 리모컨-->
<h1 id="page-top-id">페이지 최상단</h1>
...
<a href="#page-top-id">최상단으로 이동하기</a>
웹이 발전하며 현재의 웹페이지는 본래 HTML의 목적인 문서 형태보다는 시각적으로 정보를 표현하는 방향으로 많이 발전했다
애초에 문서를 위한 언어였던 HTML은 대부분의 태그들이 문서에 적합한 의미를 갖고있고 이런 태그들로는 현재의 다양한 콘텐츠를 표현하기에 부족한 부분이 있다
태그 자체에는 아무 의미가 없으며, 단순히 요소들을 묶기 위해 사용되는 태그다
스타일을 주거나 서버에 보내는 데이터를 담기 위한 용도로 사용된다
HTML 버전이 업그레이드 되며 웹에 알맞는 태그들이 많이 생겼지만 이런 의미없는 태그는 여전히 빈번하게 사용된다
<div></div> 태그와 <span></span> 태그는 가장 대표적으로 많이 쓰이는
의미 없는 태그다
<ul>
<li>암벽화</li>
<li>초크백</li>
<li>그랜즈레미디</li>
</ul>
<ol>
<li>1. 문제를 확인한다</li>
<li>2. 루트파인딩을 한다</li>
<li>3. 시도한다</li>
</ol>
<dt></dt> : definition term으로 용어를 구분하는 태그다
<dd></dd> : definition description으로 용어의 정의를 나타낸다
<dl>
<dt>리플리 증후군</dt>
<dd>허구의 세계를 진실이라 믿고 거짓된 말과 행동을 ...</dd>
<dd>리플리 증후군의 또다른 설명 ... </dd>
<dt>피그말리온 효과</dt>
<dd>타인의 기대나 관심으로 인하여 ...</dd>
<dt>언더독 효과</dt>
<dd>사람들이 약자라고 믿는 주체를 응원하게 되는 현상</dd>
</dl>
당연하지만 리스트도 중첩이 된다
<h1>월드컵 조 편성</h1>
<ol>
<li>
<h3>A조</h3>
<ul>
<li>러시아</li>
<li>우루과이</li>
<li>이집트</li>
<li>사우디아라비아</li>
</ul>
</li>
<li>
<h3>B조</h3>
<ul>
<li>이란</li>
<li>스페인</li>
<li>포르투갈</li>
<li>모로코</li>
</ul>
</li>
<li>
<h3>C조</h3>
<ul>
<li>프랑스</li>
<li>덴마크</li>
<li>호주</li>
<li>페루</li>
</ul>
</li>
</ol>
문서에 이미지를 삽입할 수 있는 img 태그
<img src="./HTML logo.jpeg" alt="로고">
이미지 별 차이점 간단하게 알고가기
gif : 256색으로 제한적이지만 용량이 작고 애니메이션과 투명 이미지가 가능
jpg : 높은 압축률과 자연스러운 색상 표현, 가장 일반적임, 투명지원x
png : jpg와 비교했을 때 이미지 손실이 없고 투명과 반투명 모두 지원
데이터를 표로 나타낼 때 사용하는 태그이다
가로 : 행, row
세로 : 열, column
td, th : 데이터 셀(table-cell) 태그. 제목 행의 셀을 나타낼 때에는 th 쓰기
tr : 행(table-row) 태그 표는 가로로 그리는 것이라고 이해하기.
<table>
<tr>
<td></td><td></td><td></td><td></td> 2행 4열 을 그려봄
</tr>
<tr>
<td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td>
</tr>
</table>
<caption></caption> : 표의 제목
<thead></thead> : 제목 행을 그룹화
<tbody></tbody> : 본문 행을 그룹화
<tfoot></tfoot> : 바닥 행을 그룹화
<table>
<caption> Monthly Savings </caption>
<thead>
<tr>
<th>Month</th>
<th>Savings</th>
</tr>
</thead>
<tbody>
<tr>
<td>January</td>
<td rowspan="2">$100</td>
</tr>
<tr>
<td>February</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2">Sum</td>
</tr>
</tfoot>
</table>
서버에 데이터를 전달하기 위한 요소들
사용자로부터 데이터를 받아야 하는 경우 사용되는 요소들을 폼 요소라고 한다
<select>
<option>1</option>
<option>2</option>
<option selected>3</option> : checked와 동일한 기능
</select>
<textarea>
...
</textarea>
cols, rows 속성 있음, 박스 크기 조절 ,값은 한 줄에 들어가는 글자의 수
텍스트 상자이기에 placeholder도 가능
<button type=""> ... </button> 버튼 태그는 빈 태그가 아님
VS
<input type="submit | reset | button">
위는 사용자가 값을 입력하는 폼 요소들이며 밑은 그 외적인 태그들이다
<label for="userid"> 아이디 : </label> <input type="text" placeholder="영문으로만 써주세요" id="userid"><br>
<fieldset>
<legend>기본 정보</legend> 주의점은 자식요소중 가장 먼저 선언해야하는 요소라는 것
...
</fieldset>
폼 단원에서 내가 여태까지 배운 요소들을 다 사용한 전체 예문이다
<form action="/test.html">
<h1>Form 관련 요소</h1>
<fieldset>
<legend>필수 정보</legend>
<label for="userid">아이디 : </label> <input type="text" placeholder="영문으로만 써주세요" id="userid"><br>
<label for="userpw">비밀번호 : </label><input type="password" id="userpw"><br>
성별 : <label for="man">남자 </label><input type="radio" name="sex" checked id="man">, <label for="woman">여자 </label><input type="radio" name="sex" id="woman"><br>
</fieldset>
<fieldset>
<legend>부가 정보</legend>
취미 : 영화감상 <input type="checkbox" name="hobby" checked>, 운동 <input type="checkbox" name="hobby">, 독서 <input type="checkbox" name="hobby"><br>
프로필 사진 업로드 : <input type="file"><br>
<input type="submit" value="전송"><br>
사는 지역 : <select>
<option>서울</option>
<option>경기</option>
<option>인천</option>
<option selected>제주</option>
</select><br>
자기소개 : <textarea cols="30" rows="5" placeholder="자기소개는 짧게 해 주세요"></textarea><br>
</fieldset>
<button type="submit">버튼요소 전송</button><br>
<button type="reset">버튼요소 취소</button><br>
<input type="reset" value="취소"><br>
<input type="button" value="등록"><br>
<input type="image" src="./HTML logo.jpeg" alt="전송" height="50" width="50">
</form>
폼 데이터를 그룹화하여 서버에 전송한다
<form action="..." method="...">
...
</form>
끝.