본문 바로가기
IT(Tip)

웹페이지 만드는 언어 HTML 5 정리 #1

by good4me 2020. 8. 4.

goodthings4me.tistory.com

1990년 초에 웹 페이지를 만드는 데 사용하는 언어로 처음 만들어진 HTML(HyperText Markup Language)은 HTML 2.0부터 표준으로 지정되었으며, 최신 버전은 HTML 5이다.

 

HTML의 모든 태그(tag)는 미리 정의되어 있어서 태그와 속성을 배우기만 하면 쉽게 웹 페이지를 만들 수 있다.

 

HTML 5 문서 구조

 

 

O 태그(Tag) : HTML 문서를 구성하고 있는 요소(Element)이고, 이름과 속성(속성값)이 있다.

O <!DOCTYPE html> 또는 <!doctype html> : 웹 브라우저에게 처리할 문서가 HTML 타입이라 알려주는 것 

O <head> 태그 내에 있는 요소 : <head> <meta>  <title></title>  <link rel="stylesheet" type="text/css" href="style.css">  <style></style>  <script></script> </head>로 구성되며, <script> 태그는 <body> 태그 마지막에 위치하는 것이 좋음

O <meta charset="utf-8"> : 글자 깨짐 방지

O 특수 기호 입력하기
HTML 문서의 특성상 여러 개의 공백을 나타내거나 따옴표('), 꺾쇠 괄호(<) 등을 화면에 표시할 떄 특수 기호로 입력한다.

화면표시  특수기호
& &amp;
공백 &nbsp;
< &lt;
> &gt;
" &quot;
| &#124;
( &#40;
) &#41;
, &#44;
- &#45;
' &acute;

 

 

 

IT, 전자제품 선물

 

 

■ HTML 5에 추가된 기능

(1) 멀티미디어 기능
① 플러그인 설치(지원) 없이 스스로 음악이나 동영상 재생 가능

(2) 2차원/3차원 그랙픽 구현
① 2차원 : SVG 태그 사용한 벡터 그래픽, Javascript 캔버스 사용한 래스터 그래픽
② 3차원 : CSS3, Javascript WebGL

(3) 서버와 소켓 통신 (양방향 통신 수행)
① 웹에서 실시간 채팅, 온라인 게임 구현 기능

(4) 장치 접근 기능
① 장치에 접근해서 정보 사용 가능
② 스타트 폰 배터리 잔량 표시, GPS, 진동 벨 등의 기능

(5) 오프라인 상태에서 애플리케이션 사용 가능

(6) HTML5 시멘틱 태그 (<header>, <nav>, <ssection>, <article>, <aside>,<footer> etc.) 
① 시멘틱 웹(Semantic Web)을 구현하는 태그
② 시맨틱 웹은 '의미론적인 웹'이라는 뜻으로, 컴퓨터가 처리(이해)할 수 있는 형태로 제작된 웹을 의미하는 것. 즉, 검색 엔진 등의 프로그램이 웹 페이지의 정보를 분석하고 자료를 검색 및 처리하여 제공해주는 지능형 웹을 의미함

(7) CSS3 완벽 지원
① 3차원 변환, 애니메이션 효과도 적용 가능

 

■ [HTML 5] 텍스트 태그

▣ 텍스트를 묶어주는 태그 (개행 O)

O <Hn> 제목 </Hn>  *n은 1 ~ 6

O <p> 텍스트 </p>
- 본문에 사용되는 태그로, 문단 및 단락 구분
- 입력한 내용 전·후로 빈 줄이 생기면서 텍스트 단락을 만듦

O <br>  줄바꾸기
- 닫는 태그 없어서 <br /> 형태로 많이 사용

O <blockquote> 인용 내용 </blockquote>
- 인용문 넣기, 다른 텍스트보다 안으로 들여 써짐

O <hr>
- 수평줄, 주제가 바뀔 떄 사용하면 좋음

O <pre> 텍스트 </pre>
- 입력한 내용 그대로 표시, 프로그램 소스 표시할 때 유용

 

▣ 텍스트를 한 줄로 표시하는 태그 (개행 X)

O <strong> 텍스트 </strong>
- 굵게 표시, 중요한 내용 강조 시

O <b> 텍스트 </b>
- 굵게 표시(단순)

O <small> 텍스트 </small>
- 작은 글자

O <em> 텍스트 </em>
- 이탤릭체로 표시, 흐름상 특정 부분을 강조 시

O <i> 텍스트 </i>
- 이탤릭체로 표시(단순)

O <sup> 텍스트 </sup>
- 글자를 상단에 배치
* 예) KOREA<sup>seoul</sup>

O <sub> 텍스트 </sub>
- 글자를 하단에 배치
* 예) KOREA<sub>seoul</sub>

O <u> 텍스트 </u>
- 밑줄 긋기

O <ins> 텍스트 </ins>
- 삽입된 글자(밑줄 표시)

O <del> 텍스트 </del>
- 글자 가운데 선 긋기(삭제된 텍스트 표시)

O <q> 인용 내용 </q>
- 인용 내용 앞뒤에 따옴표 추가됨
- 줄바꿈 없이 다른 내용과 한 줄에 인용 내용 표시

O <mark> 텍스트 </mark>
- 형광펜(배경이 노랑) 표시

O <span> 텍스트 </span>
- 영역 묶기, 줄 안에서(인라인) 묶기

O <ruby> </ruby>
- 동아시아 글자에 주석 표시, ruby 태그 안에 <rt></rt> 태그를 사용해 주석 표시 
* 예) 루비(<ruby>ruby<rt>글자 주석 표시</rt></ruby>) 태그는 이렇게 사용한다.

O 상기 이외에도 <tt></tt>, <big></big>, <strike></strike>, <s></s> 등이 있음

 

■ [HTML 5] 목록 태그

▣ 목록을 만드는 태그

O <ul> <li> </li> </ul>
- <ul> 태그는 순서없는 목록임 
- 각 항목 앞에 기호(블릿)이 붙으며, CSS의 list-style-type 속성으로 블릿 수정
- <li> </li> 태그는 목록 요소 (list item)를 의미하는 태그임
- 속성 type 은 "square", "circle", "disc" 가 있음

O <ol> <li> </li> </ol>
- <ol> 태그는 순서있는 목록임
- 각 항목 앞에 숫자 붙음
- 속성 type 은 블릿 앞의 숫자 조정으로 "1", "A", "a", "I", "i" 가 있고, start 속성은 시작번호 지정, reserved 속성은 역순으로 표시

<ul>
    <li>1일차
        <ol type="1">
            <li>영어</li>
            <li>수학</li>
        </ol>
    </li>
    <li>2일차
        <ol type="1" start="3">
            <li>국어</li>
            <li>과학</li>
            <li>사회</li>
        </ol>
    </li>
</ul>

O 정의 목록 - <dl><dt></dt> <dd></dd></dl>
- 설명 목록(definitiOn list), 제목(definitiOn term)과 그에 대한 설명(definitiOn descriptiOn)으로 이루어진 목록
- 하나의 <dt>에 여러 개의 <dd> 값 가질 수 있고, <dt>와 <dd> 태그는 닫는 태그를 생략해도 된다.

 

 

<dl>
    <dt>HTML5</dt>
    <dd>Multimedia Tag</dd>
    <dd>Connectivity</dd>
    <dd>Device Access</dd>
</dl>

 

■ [HTML 5] 표(Table) 태그

▣ 테이블을 만드는 태그

O <table>, <tr>, <th>, <td>
- 테이블은 가로 row(행)과 세로 column(열)으로 표시됨
- <tr>은 표 내부의 행(row) 태그 
- <th>는 행 내부의 제목 셀(cell) 태그로 제목을 중앙에 bold로 표시 
- <td>는 행의 일반 셀 태그 

<table border="1">
    <tr>
        <th>과일</th>
        <th>채소</th>
    </tr>
    <tr>
        <td>사과</td>
        <td>배추</td>
    </tr>
</table>

- table 제목은 <table> 태그 바로 밑(첫번째 <tr> 위)에 <caption>제목</caption> 으로 표시 
* <cation> 제목은 테이블 위쪽 중앙에 표시됨

<table border="1">
    <caption>과일</caption>
    <tr>
        <td>사과</td>
        <td>오렌지</td>
        <td>포도</td>
    </tr>
</table>


O 테이블 제목 붙이기 다른 방법
- <figure><figcaption>제목</figcaption></figure> 
- 테이블 전체에 캡션을 묶어줄 수 있는 태그로 <figure></figure>로 테이블을 감싸고, 제목이 들어갈 위치(테이블 위/아래)에 <figcaption>제목</figcaption> 하면 됨

<figure>
    <figcaption>좋아하는 과일</figcaption>
    <table border="1">
        <tr>
            <td>사과</td>
            <td>오렌지</td>
            <td>포도</td>
        </tr>
    </table>
    <figcaption>좋아하는 과일</figcaption> <!-- 아래에 배치 시 -->
</figure>

* <figure></figure>은 이미지나 동영상 부분에도 사용 가능


O 테이블 셀(칸) 합치기 (<td> 또는 <th> 대상 지정)
- colspan : 열 합치기(가로 너비)
- rowspan  : 행 합치기(세로 높이)
- <td> 합치기
<td colspan="합칠 열의 개수"> 내용 </td>
<td rowspan="합칠 행의 개수"> 내용 </td> 

- <colgroup></colgroup>은 <table>태그와 같이 쓰는 태그로, <col style="width: 200px;">로 각 줄(셀)마다 크기를 설정함

<table border="1">
    <colgroup>
        <col style="width: 15%">
        <col style="width: 35%">
        <col style="width: 15%">
        <col style="width: 35%">
    </colgroup>
    <tr>
        <th>이름</th>
        <td></td>
        <th>연락처</th>
        <td></td>
    </tr>
    <tr>
        <th>주소</th>
        <td colspan="3"></td>
    </tr>
    <tr>
        <th>자기소개</th>
        <td colspan="3"></td>
    </tr>
</table>


O <colgroup><col></colgroup> : 열끼리 묶어 스타일 지정
- <col>태그는 한 열에 있는 모든 셀에 같은 스타일을 적용하려고 할 때 사용함. 닫는 태그 없음
* span 속성을 이용하여 여러 열을 묶을 수 있음
- <colgroup> </colgroup> 태그로 여러 열을 묶을 수 있는데, <colgroup> 안에 묶는 열의 개수만큼 <col> 태그를 사용
* 즉, 표의 셀(<td>)의 개수와 <col> 태그의 개수가 같아야  함
- 위 두 태그는 <caption> 태그 뒤, <tr> 태그 전에 사용해야 함

<table border="1">
    <caption>colgroup 연습</caption>
    <colgroup> <!--td 4개, col 도 4개 사용  -->
        <col>
        <col span="2" style="background-color: blue;">
        <col style="background-color: yellow;">
    </colgroup>
    <tr>
        <td>1행1열 </td>
        <td>1행2열 </td>
        <td>1행3열 </td>
        <td>1행4열 </td>
    </tr>
    <tr>
        <td>2행1열 </td>
        <td>2행2열 </td>
        <td>2행3열 </td>
        <td>2행4열 </td>
    </tr>
</table>


O 테이블의 구조 정의 태그 
- <thead>, <tbody>, <tfoot>
- <thead> <tr> ... </tr> </thead>  표의 제목 부분
- <tbody> <tr> ... </tr> </tbody>  실제 본문
- <tfoot> <tr> ... </tr> </tfoot>  요약 부분
* <tfoot>을 <tbody> 위로 배치도 가능
- 표의 본문이 길 경우 자바스크립트를 이용하여 제목과 바닥을 고정하고 본문만 스크롤되게 가능함

 

■ [HTML 5] 이미지 태그(이미지와 하이퍼링크)

▣ 이미지 태그(<img>)

O <img src="경로" [속성="값"]>
- alt 속성 : 대체 텍스트
- width, height 속성 : 이미지 크기 조정
<img src="./penguins.jpg" alt="펭귄" width="300" />

O 이미지에 설명글 붙이기
- <figure> 요소 </figure>  설명글을 붙일 대상(요소) 지정
- <figcaption> 설명글 </figcaption>  이미지를 설명하는 대체 텍스트

<figure>
    <img src="https://t1.daumcdn.net/daumtop_chanel/op/20170315064553027.png" alt="daum 로고">
    <figcaption>[daum 로고]</figcaption>
</figure>

 

▣ 하이퍼링크(<a>, <map>) 만들기

O <a></a> 태그
- anchor 태그(<a>)는 ①서로 다른 웹 페이지 사이를 이동하거나 ②웹 페이지 내부에서 특정한 위치로 이동할 때 사용하는 태그
<a href="링크할 주소(경로)" [속성="속성값"]>텍스트, 이미지(<img>태그 활용)</a>
* 절대경로 : 최상위 디렉토리가 반드시 포함 된 경로
* 상대경로 : 현재 디렉토리(비교 대상)를 기준으로 작성된 경로(/ ./ ../)
/   : 최상위 경로
./  : 현재 디렉토리(폴더)
../  : 상위 디렉토리

O <a> 태그 속성들
- href(hypertext reference) :  링크된 페이지의 URL임
- target :  링크된 문서를 클릭했을 때 문서가 열릴 위치 명시로 _blank, _self, _parent, _top 가 있음
- rel : 현재 문서와 링크된 문서 사이의 연관 관계(relationship)를 명시
* 검색 엔진들은 링크에 대한 더 많은 정보를 수집하기 위해 이 속성을 사용할 수 있으며, 이 속성은 href 속성이 반드시 설정되어 있어야만 사용할 수 있음
* rel 속성값 : alternate, author, bookmark, external, help, license, next, nofollow, noreferrer, noopener, prev, search, tag
- download : 사용자가 하이퍼링크를 클릭할 때 해당 대상(target)으로 연결되지 않고 대신 해당 콘텐츠가 다운로드됨  <a href="https://abc.jpg" download>abc logo</a>
- hreflang : 링크한 문서의 언어 지정
- type : 링크한 문서의 유형 알려주기

 


O 링크(앵커) : 한 페이지 안에서 점프하기
- <a> 태그 href 속성을 이용해 링크함 (단, 앵커 이름 앞에 '#'을 붙임)
<a href="#앵커이름"> 텍스트 or 이미지</a>
- 이동 위치에 id 속성을 이용해 앵커를 만듦
<태그 id="앵커이름"> 텍스트 or 이미지</태그> 

O 이미지 맵(map) 사용하기 
- 이미지 맵 : 한 이미지 상에 여러 다른 링크를 만드는 것
- <map name=""><area><area>...</map> 태그와 <img>태그 usemap 속성 이용
- 맵 이름을 부여한 후, 사용할 이미지가 있는 <img> 태그에서는 usemap 속성을 추가하고 "#맵이름"을 지정해줌
- 기본 형식
<map name="맵이름">
    <area shape="" coords="" href="" target="" alt="">
    <area shape="" coords="" href="" target="" alt="">
</map>
<img src="이미지 파일" usemap="#맵이름">
- 속성 : alt, shape, coords, download, href, media, rel, target, type
- shape 속성은 링크로 사용할 영역 모양(형태) 지정 : default, rect, circle, poly
- coords 속성은 링크로 사용할 영역을 지정해주는 것이며, rect인 경우는 시작 좌표(x,y)와 끝 좌표(x,y)를 이용해 지정하고, circle인 경우는 원의 중점 좌표(x,y)와 반지름의 크기를 지정함
* 좌표는 이미지 보는 프로그램(알씨 등)으로 이미지를 띄운 후 모양(shape)에 따른 좌표(coords, 이미지 프로그램 하단의 X, Y 좌표)를 찾아 <area>태그 내에 지정하면 됨

<figure>
    <img src="https://t1.daumcdn.net/daumtop_chanel/op/20170315064553027.png" usemap="#logo" alt="daum 로고">
    <figcaption>daum 로고</figcaption>
</figure>
<map name="logo">
    <area shape="rect" coords="86,40,205,147" href="http://www.daum.net" target="_blank">
    <area shape="circle" coords="270,96,45" href="#">
</map>

O 이미지 맵을 이용해 이벤트 메일 만들기
- 사용할 이미지는 <img>링크로 붙일 수 있도록 서버에 저장
- 이미지 보는 프로그램으로 모양(shape)에 따른 좌표(coords)를 찾아 <area>태그 내에 지정
- 소스 코드를 복사하여 메일 내용에 붙여넣기(메일의 html 소스에)

 

■ [HTML 5] 멀티미디어(오디오/비디오)

▣ 오디오 태그 / 비디오 태그

O <object>, <emded> 태그 
- 외부 파일을 삽입하는 태그. <audio>, <video> 태그로 대체되는 추세
<object data="경로" type="유형" name="이름" width="너비" height="높이"></object>
* 웹 브라우저에서 직접 재생할 수 없는 자바 애플릿이나 pdf, 플래시무비 등 삽입
- <object> 태그를 지원하지 않는 브라우저는 <embed> 태그 사용
<embed src="경로"  type="유형" width="너비" height="높이">

O <audio> 태그
- 배경 음악이나 효과음 등 오디오 재생
- 대부분 브라우저에서 mp3 지원하므로 mp3 파일만 사용
- <audio src="오디오 파일 경로" [속성="속성값"]></audio>
- 속성 : src(음악 파일 경로), autoplay(자동 재생), controls(재생 도구 출력), loop(반복 지정), preload(재생 전 모두 불러올지 지정), poster
* preload="none | metadata | auto" : 다운로드 여부 지정
* poster="fire.jpg" : 비디오 재생할 수 없을 경우, 대신 표시하는 이미지 지정 
① <audio src="media/bgsound.mp3" controls="controls" autoplay="autoplay" loop="loop"></audio>
② <audio src="media/bgsound.mp3" controls></audio> 
* 속성은 XHTML5 표기법 사용 시에는 ①처럼, HTML5 표기법으로 사용할 경우에는 ②처럼 속성 이름만 입력해도 됨 

O <video> 태그
- 웹 문서에 비디오 파일 삽입
- <video src="비디오 파일 경로" [속성="속성값"]></video>
- 속성 : src, preload, autoplay, loop, controls, width, height, poster
- <video></video> 태그는 아래 2가지 방법으로 사용 
<video src="" type="video/mp4" controls="controls"></video>
<video controls> <!-- 속성에 값을 안넣으면 기본값이됨 -->
    <source src="" type="vido/mp4" />
</video>

* 지원 안되는 브라우저일 경우, <source> 사용

<video autoplay controls width="300" height="150">
    <source src="http://webguru.dothome.co.kr/media/Painting.mp4" type="video/mp4">
    <source src="http://webguru.dothome.co.kr/media/Painting.webm">
    <source src="http://webguru.dothome.co.kr/media/Painting.ogv">
</video>

 

▣ HTML 5와 코덱(비디오/오디오)

O 비디오 코덱 
- 인코딩과 디코딩 수행 
- html 5에서는 브라우저에서 직접 재생할 수 있는 비디오 코덱만 허용
* 인코딩(encoding) : 원본 비디오를 컴퓨터에서 사용할 수 있는 비디오 파일로 변환
* 디코딩(decoding) : 컴퓨터 비디오 파일에 있는 비디오 정보를 가져와 플레이어에 보여주는 과정

* 촬영(기기) --> 인코딩(비디오 코덱) --> 비디오 파일(컴퓨터) --> 디코딩(비디오 코덱) --> 비디오 플레이어

(1) H.264/AVC
- 고화질의 영상. mp4 파일, mov 파일 등에서 사용
- 유료 코덱이지만 온라인에서 사용할 경우 무료로 사용 가능
- 대부분 모던 브라우저에서 지원

(2) 오그 테오라(ogg Theora)
- 공개 코덱. ogv 파일 형식에서 사용
- 크럼, 파이어폭스, 오페라에서 지원

(3) v8, v9
- 오픈 소스로 공개 코덱. webm 파일에서 사용
- 화질이 좋고 무료로 제공
- 크럼, 파이어폭스, 오페라에서 지원

* 동영상 파일을 웹 브라우저에 삽입할 때는 대부분의 브라우저에 H.264 코덱을 지원하므로 mp4 파일을 기본적으로 사용
* 무료이면서 최신 코덱인 v9 코덱을 이용한 webm 파일도 함께 사용
* 이전 모던 브라우저 중에서 ogv 파일만 지원하는 경우도 있으므로 ogb 파일도 사용

O 오디오 코덱
(1) MPEG-1 AUDIo Layer3 (MP3코덱)
- 가장 많이 사용하는 오디오 코덱
- mp3 파일에서 사용
- 특허권이 등록되어 있어서 유료

(2) 오그 보비스(ogg Vorbis)
- 공개 코덱. ogg 파일 형식에서 사용
- 재생 플레이어가 적고 인코딩 시간이 더 걸린다는 단점.
* 무료라서 PC게임 등에 많이 사용

 

 

댓글