zhaoJian의 기술 노트

IT 강좌 HTML 기초 015_HTML5 새로운 기능

학습 / HTML 기초 약 7285자 · 19분 소요 - 조회

HTML5 새로운 기능

HTML5는 HTML의 최신 버전으로, 많은 새로운 태그, 속성, 기능을 도입하여 웹의 기능과 상호작용성을 크게 향상시켰습니다.

HTML5의 흥미로운 새로운 기능들:

  • 그림 그리기를 위한 canvas 요소
  • 미디어 재생을 위한 video와 audio 요소
  • 로컬 오프라인 저장에 대한 더 나은 지원
  • article, footer, header, nav, section과 같은 새로운 특수 콘텐츠 요소
  • calendar, date, time, email, url, search와 같은 새로운 폼 컨트롤

<canvas>

HTML5 <canvas> 요소는 웹페이지에서 그래픽을 그리는 데 사용됩니다. <canvas> 요소는 JavaScript 기반 그리기 API를 사용하며, 차트, 그래픽, 애니메이션 등 다양한 그래픽을 만드는 데 사용할 수 있습니다.

예제:

<canvas width="500" height="500">
귀하의 브라우저는 HTML5 canvas 태그를 지원하지 않습니다.
</canvas>
<script>
const canvas = document.querySelector("canvas");
// 그리기 컨텍스트 가져오기
const ctx = canvas.getContext("2d");
// 원 그리기
ctx.beginPath();
ctx.arc(250, 250, 100, 0, 2 * Math.PI);
ctx.fillStyle = "yellow";
ctx.fill();
</script>

효과:

예제 효과


<svg>

HTML5 SVG 요소는 웹페이지에서 SVG 그래픽을 만드는 데 사용됩니다. SVG 그래픽은 XML 기반 벡터 그래픽으로, 무손실 확대/축소가 가능하며, 다음을 포함한 다양한 목적에 적합합니다:

SVG 요소에는 다음이 포함됩니다:

  • <svg> 요소: SVG 그래픽의 루트 요소를 정의합니다.
  • <path> 요소: 경로 모양을 정의합니다.
  • <rect> 요소: 직사각형 모양을 정의합니다.
  • <circle> 요소: 원 모양을 정의합니다.
  • <ellipse> 요소: 타원 모양을 정의합니다.
  • <line> 요소: 직선을 정의합니다.
  • <polygon> 요소: 다각형을 정의합니다.
  • <polyline> 요소: 절선을 정의합니다.
  • <text> 요소: 텍스트를 정의합니다.
  • <g> 요소: 그룹을 정의하며, SVG 요소를 함께 그룹화하는 데 사용됩니다.
  • <defs> 요소: 여러 SVG 요소에 적용할 수 있는 전역 속성을 정의합니다.

예제:

<svg width="500" height="500">
<circle cx="250" cy="250" r="100" fill="yellow" />
</svg>

효과:

예제 효과

SVG와 Canvas는 모두 웹페이지에서 그래픽을 만드는 도구입니다. 각각 장단점이 있으며, 다른 시나리오에 적합합니다.

SVG는 XML 기반 벡터 그래픽으로 무손실 확대/축소가 가능합니다. 이는 SVG 그래픽이 품질 손실 없이 모든 크기로 표시될 수 있음을 의미합니다. SVG 그래픽은 CSS와 JavaScript를 사용하여 조작하고 애니메이션화할 수도 있습니다.

Canvas는 JavaScript 기반 그리기 API로 비트맵 그래픽을 만들 수 있습니다. 이는 Canvas 그래픽이 무손실 확대/축소가 불가능하지만, JavaScript를 사용하여 더 복잡한 그래픽을 만들 수 있음을 의미합니다. Canvas 그래픽도 JavaScript를 사용하여 조작하고 애니메이션화할 수 있습니다.

SVG와 Canvas의 구체적인 차이점:

특성SVGCanvas
이미지 유형벡터비트맵
확대/축소무손실손실
그래픽 유형직사각형, 원, 경로 등임의
조작CSS, JavaScriptJavaScript
애니메이션CSS, JavaScriptJavaScript
파일 크기일반적으로 작음일반적으로 큼
접근성우수보통
  • SVG 적합한 시나리오:

    • 아이콘, 로고, 일러스트와 같이 무손실 확대/축소가 필요한 그래픽
    • CSS와 JavaScript를 사용하여 조작 및 애니메이션화해야 하는 그래픽
  • Canvas 적합한 시나리오:

    • 게임, 애니메이션과 같이 복잡한 그래픽을 만들어야 하는 시나리오
    • JavaScript를 사용하여 복잡한 작업이 필요한 시나리오

HTML5 폼

HTML5는 폼의 기능과 사용성을 향상시키기 위해 몇 가지 새로운 입력 유형과 속성을 도입했습니다.

새로운 폼 요소:

  • <datalist> 요소: <input> 요소에 대한 미리 정의된 옵션 목록입니다.

예제:

<label for="browser">브라우저 선택:</label>
<input list="browsers" id="browser" name="browser" autocomplete="off">
<datalist id="browsers">
<option value="Chrome">
<option value="Firefox">
<option value="Safari">
<option value="Edge">
<option value="Opera">
</datalist>

효과:

예제 효과

요소설명
<datalist><input> 요소에 대한 미리 정의된 옵션 목록을 정의합니다.
<output>계산 결과를 나타냅니다.
<keygen>폼에 대한 키 쌍을 생성하며, 일반적으로 키 교환에 사용됩니다.
<progress>모든 유형의 작업에 대한 진행률 표시줄을 정의합니다.
<meter>알려진 범위 내의 스칼라 값 또는 분수를 측정합니다.

새로운 폼 속성:

  • <form> / <input> autocomplete 속성: form 또는 input 필드가 자동 완성 기능을 가져야 함을 지정합니다. 사용자가 자동 완성 필드에 입력을 시작하면 브라우저가 해당 필드에 채울 옵션을 표시해야 합니다.

예제:

<form action="demo-form.php" autocomplete="on">
성: <input type="text" name="fname"><br>
이름: <input type="text" name="lname"><br>
이메일: <input type="email" name="email" autocomplete="off"><br>
<input type="submit">
</form>

효과:

예제 효과

속성설명
autocomplete입력 필드가 자동 완성 기능을 활성화해야 하는지 지정합니다.
novalidate브라우저의 폼 검증을 비활성화합니다.
form<input> 요소가 속한 폼을 지정하여 특정 폼과 연결합니다.
formaction폼을 제출할 때 사용할 URL을 지정합니다.
formenctype폼을 제출할 때 사용할 인코딩 유형(예: application/x-www-form-urlencoded 또는 multipart/form-data)을 지정합니다.
formmethod폼을 제출할 때 사용할 HTTP 메서드(예: get 또는 post)를 지정합니다.
formnovalidate폼을 제출할 때 브라우저의 폼 검증을 비활성화합니다.
formtarget폼을 제출한 후 열릴 대상 창 또는 프레임을 지정합니다.
height<input type="image"> 요소의 높이를 설정합니다.
width<input type="image"> 요소의 너비를 설정합니다.
list<input> 또는 <textarea> 요소와 연결된 <datalist> 요소의 id를 지정합니다.
min<input> 요소의 최소값을 지정합니다.
max<input> 요소의 최대값을 지정합니다.
pattern폼을 제출할 때 입력 필드를 검증하기 위한 정규 표현식을 정의합니다.
placeholder입력 필드가 비어 있을 때만 표시되는 간단한 힌트를 제공합니다.
required입력 필드가 필수인지 지정합니다.
step<input> 요소의 유효한 숫자 간격을 지정합니다.

새로운 input 유형:

<form action="/submit" method="post">
<label for="name">이름:</label>
<input type="text" id="name" required />
<br>
<label for="email">이메일 주소:</label>
<input type="email" id="email" required />
<br>
<label for="birthday">생년월일:</label>
<input type="date" id="birthday" required />
<br>
<label for="phone">전화번호:</label>
<input type="tel" id="phone" required />
<br>
<input type="submit" value="제출" />
</form>

효과:

예제 효과

유형기능
color색상 값을 입력하는 데 사용됩니다.
date날짜 값을 입력하는 데 사용됩니다.
datetime-local날짜와 시간 값을 입력하는 데 사용됩니다.
email이메일 주소를 입력하는 데 사용됩니다.
file파일을 업로드하는 데 사용됩니다.
month월 값을 입력하는 데 사용됩니다.
number숫자 값을 입력하는 데 사용됩니다.
range범위 값을 입력하는 데 사용됩니다.
search검색 문자열을 입력하는 데 사용됩니다.
tel전화번호를 입력하는 데 사용됩니다.
time시간 값을 입력하는 데 사용됩니다.
urlURL 주소를 입력하는 데 사용됩니다.

[!요약]

요소기능추천 여부
새로 추가된 요소
<canvas>차트 및 기타 이미지와 같은 그래픽을 정의합니다. 이 태그는 JavaScript 기반 그리기 API를 기반으로 합니다.추천
<audio>오디오 콘텐츠를 정의합니다추천
<video>비디오(video 또는 movie)를 정의합니다추천
<source><video><audio>의 멀티미디어 리소스를 정의합니다추천
<track>오디오 또는 비디오의 자막 또는 번역을 정의합니다추천
<datalist>옵션 목록을 정의합니다. input 요소와 함께 사용하여 input의 가능한 값을 정의합니다.추천
<keygen>폼에 대한 키 쌍 생성기 필드를 지정합니다.추천
<output>스크립트 출력과 같은 다양한 유형의 출력을 정의합니다.추천
<article>페이지의 독립적인 콘텐츠 영역을 정의합니다.추천
<aside>페이지의 사이드바 콘텐츠를 정의합니다.추천
<bdi>부모 요소의 텍스트 방향 설정에서 벗어나도록 텍스트 일부를 설정할 수 있습니다.추천
<dialog>대화 상자를 정의합니다.추천
<figure>이미지 또는 기타 시각적 콘텐츠를 포함하는 영역을 정의합니다.추천
<footer>페이지 또는 페이지 일부의 하단 영역을 정의합니다.추천
<header>페이지 또는 페이지 일부의 상단 영역을 정의합니다.추천
<main>페이지의 주요 콘텐츠 영역을 정의합니다.추천
<mark>중요하거나 강조 표시된 텍스트를 정의합니다.추천
<meter>진행률 또는 값 범위를 정의합니다.추천
<nav>페이지 또는 페이지 일부의 탐색 영역을 정의합니다.추천
<progress>진행률 표시줄을 정의합니다.추천
<time>날짜 또는 시간을 정의합니다.추천
<wbr>텍스트에 줄 바꿈 가능한 문자를 삽입할 수 있습니다.추천
더 이상 사용되지 않거나 권장되지 않는 요소
<acronym>약어를 정의합니다. <abbr> 요소 사용을 권장합니다.추천
<applet>Java 애플릿을 정의합니다. JavaScript 또는 기타 최신 기술 사용을 권장합니다.비추천
<basefont>페이지의 모든 텍스트에 대한 기본 글꼴 크기와 색상을 설정합니다. CSS를 사용하여 텍스트 스타일을 설정하는 것을 권장합니다.비추천
<big>텍스트의 글꼴 크기를 설정합니다. CSS를 사용하여 텍스트 스타일을 설정하는 것을 권장합니다.비추천
<center>텍스트를 강제로 가운데 정렬합니다. CSS를 사용하여 텍스트 정렬 방식을 설정하는 것을 권장합니다.비추천
<dir>디렉토리 목록을 정의합니다. <ul> 요소 사용을 권장합니다.비추천
<font>텍스트의 글꼴 크기, 색상, 스타일 등을 설정합니다. CSS를 사용하여 텍스트 스타일을 설정하는 것을 권장합니다.비추천
<frame>프레임을 정의합니다. iframe 요소 사용을 권장합니다.비추천
<frameset>프레임 세트를 정의합니다. iframe 요소 사용을 권장합니다.비추천
<noframes>프레임을 지원하지 않는 브라우저에 대한 대체 콘텐츠를 제공합니다. JavaScript를 사용하여 브라우저가 프레임을 지원하는지 판단하고 상황에 따라 콘텐츠를 표시하거나 숨기는 것을 권장합니다.비추천
<strike>텍스트에 취소선을 설정합니다. CSS를 사용하여 텍스트 스타일을 설정하는 것을 권장합니다.비추천
<tt>텍스트에 고정폭 글꼴을 설정합니다. CSS를 사용하여 텍스트 글꼴을 설정하는 것을 권장합니다.비추천
공유:

댓글