문서의 구조
표준에서 마크업을 할 때 생각해야 할 부분이 시멘틱(Symentic, 의미에 맞는)이라 생각합니다. 이런 부분은 XHTML 에서 독타입(DTD)과 아울러 중요하게 여기던 것이었는데요. 그래서 여러분도 아시다시피 표준에서는 <table> Coding 을 하지 말고 구조적인 방식으로 <div> Coding 을 하도록 주문했었습니다.
사실 이런 <div> Element 로 구조를 짠다는 것은 시멘틱이라고 하기는 어렵습니다. 왜냐하면 단순하게 구조 부분에 <div>를 적용한다고 해서 구조의 '의미'를 쉽게 알 수가 없다는 것이죠. 그래서 우리는 의미를 쉽게 알기 위해 선택자를 만들어 적용하고 그 선택자를 통해 의미를 이해하려 했습니다. 예를들면,
XHTML 구조 |
|
HTML5 구조 |
<div id="header">
...
</div> |
|
<header>
...
</header> |
위 비교에서처럼 HTML5는 태그 자체로 의미를 가진다고 하겠습니다. 기존에 의미는 없고 단순히 블럭형태의 구조를 짜는 식의 설계가 아닌 의미에 맞는 설계가 가능하다는 이야기입니다.
HTML5 기본 문법구조
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8 /">
<title>HTML5 기본 문법구조</title>
</head>
<body>
<header>
<hgroup>
<h1>머리말 제목</h1>
</hgroup>
</header>
<nav>
<ul>
메뉴01
</ul>
</nav>
<section>
<article>
<header>
<h1>섹션 제목</h1>
</header>
<section>
<h2>섹션 소제목</h2>
</section>
</article>
</section>
<aside>
콘텐츠를 제외한 배너
</aside>
<footer>
<small>Copyright ⓒ jopenbusiness 2010, All Rights Reserved.</small>
</footer>
</body>
</html>
Metadata Content
콘텐츠의 모양, 동작을 설정하거나 다른 문서와의 관계를 나타낸다. :: <head> 태그 내에서 사용되며, title, meta, link, script, style 태그가 있다.
Flow Content
일반적으로 <body> 태그내에서 사용되는 대부분의 태그를 의미 한다.
iframe
Sectioning Root
body, blockquote, figure 태그가 대표적이다.
Sectioning Content
header과 footer의 범위를 결정하는 요소로 모든 섹셔닝 콘텐츠는 헤딩과 아웃라인을 가지고 있다. :: section, article, nav 태그가 대표적이다.
4단 레이아웃의 비교
비교적 많이 사용되는 4단 레이아웃으로 XHTML과 HTML5의 비교를 해보겠습니다. 물론, 비교하는 엘리먼트는 새로이 추가된 엘리먼트로 뒤에 자세한 의미와 함께 설명하겠습니다.
<header><side-bar><contents><footer> 부분을 가진 4단 레이아웃을 가지고 구조를 만들어 보겠습니다. 단순히 '의미'에 맞는 구조라는 측면에서의 CODE 이니 스타일은 제외하겠습니다.
XHTML 구조 |
|
HTML5 구조 |
<div id="header">
<h1>제목</h1>
</div>
<div id="nav">
<h2>메뉴</h2>
<ul>
<li>내소개</li>
<li>포트폴리오</li>
</ul>
</div>
<div id="contents">
<h2>본문 제목</h2>
<p>내용</p>
</div>
<div id="footer">
<p>저작문구</p>
</div> |
|
<header>
<h1>제목</h1>
</header>
<nav>
<h2>메뉴</h2>
<ul>
<li>내소개</li>
<li>포트폴리오</li>
</ul>
</nav>
<section>
<h2>본문 제목</h2>
<p>내용</p>
</section>
<footer>
<small>저작문구</small>
</footer> |
HTML5에서는 엘리먼트만으로도 쉽게 어떤 구조인지가 쉽게 구분할 수 있도록 바꼈습니다. 이를 비롯해 비디오, 오디오, 도큐먼트 자체를 켄버스로 지정해서 그림을 표현할 수 있는 엘리먼트를 비롯해 API(애플리케이션)을 활용할 수 있는 다양한 방법이 추가되었습니다.
다음 강좌는 새로이 추가된 엘리먼트들에 대해서 알아 보겠습니다.