HTML/CSS 1.7 · 1부. HTML 기초
의미를 담는 태그
보이는 모양은 같지만 기계가 읽는 뜻이 다릅니다.
개념 설명
같은 화면, 다른 태그
화면을 몇 덩어리로 나누어야 할 때가 있습니다. 머리말, 차림표, 본문, 꼬리말이
그렇습니다. 이때 div 로만 나눌 수도 있고, 그 덩어리가
무엇인지 알리는 태그를 사용할 수도 있습니다.
보이는 모양은 같습니다. 다른 것은 기계가 읽는 뜻입니다. 화면 읽기 프로그램은 그것을 보고 "차림표로 건너뛰기" 를 할 수 있고, 검색 엔진은 어디가 본문인지 압니다.
최소 예제 · 편집 가능
둘을 나란히 놓고 보면
<header> <h1>마야 도서관</h1> <nav> <a href="/">처음</a> <a href="/notice">공지</a> </nav> </header> <main> <article> <h2>휴관 안내</h2> <p>다음 주 월요일은 쉽니다.</p> </article> </main> <footer> <p>문의 홍길동</p> </footer>
/* 덩어리가 보이도록 테두리만 그렸습니다. 2.7 에서 다룹니다. */ header, main, footer { border: 1px dashed #999; padding: 8px; margin-bottom: 8px; } nav a { margin-right: 10px; }
header 를 div 로 바꿔도
화면은 그대로입니다. 그래서 지키지 않아도 티가 나지 않고, 그만큼 그냥
지나치기 쉽습니다.
상세 사용법
어느 태그를 언제 사용하는가
| 태그 | 담는 것 |
|---|---|
header | 머리말입니다. 제목과 차림표가 들어갑니다. 문서에 하나, 각 article 안에도 둘 수 있습니다. |
nav | 다른 곳으로 가는 링크 묶음입니다. 화면의 모든 링크가 아니라 차림표에만 사용합니다. |
main | 이 화면의 본문입니다. 화면에 하나만 둡니다. |
article | 떼어 놓아도 뜻이 통하는 덩어리입니다. 글 하나, 상품 하나, 댓글 하나. |
section | 주제로 묶은 구역입니다. 제목을 함께 둡니다. |
aside | 본문에서 벗어난 곁가지입니다. 관련 글 목록, 광고. |
footer | 꼬리말입니다. 만든 곳, 연락처. |
div | 뜻이 없습니다. 위의 어느 것도 맞지 않을 때, 묶어서 꾸미려고만 사용합니다. |
article 과 section 이 가장
헷갈립니다. 기준은 하나입니다 — 그것만 떼어 다른 곳에 옮겨도 말이 되는가.
되면 article, 아니면
section 입니다.
상세 사용법
div 를 쓰지 말라는 것이 아닙니다
div 는 여전히 많이 사용합니다. 배치를 위해 묶어야 할
때가 그렇습니다. 다만 뜻이 있는 자리에 먼저 뜻이 있는 태그를 놓고, 남는
자리에 div 를 사용하는 순서입니다.
뜻 없이
<div class="header"> <div class="nav">…</div> </div> <div class="content">…</div>
뜻을 담아
<header> <nav>…</nav> </header> <main>…</main>
오른쪽은 클래스 이름을 붙이지 않아도 무엇인지 알 수 있습니다. 이름을 짓는 수고가 줄고, 다른 사람이 읽을 때도 같습니다.
흔한 실수
세 가지
-
main을 여러 개 둡니다. 화면의 본문은 하나입니다. 여러 구역이 필요하면section을 사용하십시오. -
모든 링크를
nav로 감쌉니다. 본문 안의 링크는 그냥 링크입니다.nav가 많으면 건너뛰기가 오히려 번거로워집니다. -
제목 없이
section을 사용합니다.section은 주제로 묶은 구역이라 제목이 있어야 합니다. 제목을 붙일 수 없다면div가 맞습니다.
실습 문제
직접 해보기
1. div 를 뜻이 있는 태그로 바꾸기
난이도 중
아래 코드에서 div 를 알맞은 태그로 바꾸십시오.
고칠 코드
<div class="top"> <h1>공지사항</h1> <div class="menu"><a href="/">처음</a></div> </div> <div class="body"> <div class="post"> <h2>휴관 안내</h2> <p>다음 주 월요일은 쉽니다.</p> </div> </div>
post 는 떼어 놓아도 말이 되는 덩어리입니다. 클래스 이름이 힌트를 주고 있습니다.<header>
<h1>공지사항</h1>
<nav><a href="/">처음</a></nav>
</header>
<main>
<article>
<h2>휴관 안내</h2>
<p>다음 주 월요일은 쉽니다.</p>
</article>
</main>
요약
정리
- 뜻을 담는 태그는 보이는 모양이 아니라 기계가 읽는 뜻을 정합니다.
main은 화면에 하나입니다.- 떼어 놓아도 말이 되면
article, 아니면section입니다. div는 뜻이 없습니다. 남는 자리에 사용합니다.