본문 바로가기
Mark Up/HTML

[HTML]HTML5_레이아웃을 위한 시맨틱 요소( header, hgroup, nav, article, section, aside, footer )

by 썸머워즈 2019. 3. 24.
반응형

시맨틱 요소

시맨틱(semantic)이란 무엇일까?

'미가 있는', '의미의'라고 해석되는 단어로 HTML문에서 의미를 부여하겠다는 의도가 담겨져 있다.

웹에서 표시되는 BODY영역의 레이아웃을 살펴보면 다음과 같다.

 

 

 요소 설명 
header   머리말을 나타내는 요소 
hgroup   제목과 부제목을 묶는 요소 
nav   메뉴 부분을 나타내는 요소 
article   개별 콘텐츠를 나타내는 요소 
section   제목별로 나눌 수 있는 요소 
aside   좌우측의 사이드바를 나타내는 요소 
footer   제작자의 정보나 저작권의 정보를 나타내는 요소 

 

*실제 사이트 구조도로 살펴보면 다음과 같다.

 

 

▷ section 요소

 - 문서의 내용 부분을 나타내는 요소이다.
 - 하나의 section은 하나의 주제를 가지고 있으며 보통 h1~h6 태그와 같이 제목을 표현하는 heading 요소와 함께 사용한다.
 - 주의할점은 하나의 section 요소에는 하나의 heading 요소만을 사용해야 한다.
 - 주제별로 나눌경우 하나의 주제 안에 또 다른 세부 주제가 있을경우 section 요소 안에 section요소를 중첩 사용 가능하다.
 
* 중복하여 heading 요소인 h태그를 사용할 경우 h1~h6 요소의 레벨에 따라 결정된다.
* 같은 레벨의 h1~h6 요소를 사용하게 되면 한개의 section 요소는 두개의 section 요소로 나뉘게 되고
  다른 레벨의 h1~h6 요소를 사용하게 되면 내부에 또 다른 section 요소가 중첩하여 생성된 것처럼 암죽적으로 해석된다.
 

 

▷ hgroup 요소

 - 제목과 부제목을 묶어 주는 용도로 만들어짐
 - HTML 5 최종 표준에서 제외되었다.
<section>
    <hgroup>
        <h1> 제목 1 </h1>
        <h2> 제목 2 </h2>
    </hgroup>
    본문의 내용
</section>​

 

 ▷ article 요소
 - 개별 콘텐츠를 담는 요소이다.(위의 실제 예시로 보면 콘텐츠라 나와있는데 그 부분이 article 이다.)
 - article 요소 안의 내용은 포함되어 있는 문서와 분리하여 개별적으로 사용이 가능하다는 것을 의미한다.
 
<section>
    <article>
        <h1> 제목 2 </h1>
        <p> 본문1 내용 </p>
    </article>
    <article>
        <h1> 제목 2 </h1>
        <p> 본문2 내용 </p>
    </article>
    <article>
        <h1> 제목 3 </h1>
        <p> 본문3 내용 </p>
    </article>
    ...
</section>

▷ header 요소

  - 사이트의 로고나 제목, 메뉴, 소개 정보 등과 같이 머리말에 놓이는 내용을 담는다. (네이버나 다음같이 상단에 로고 제목 등등)
 
▷ footer 요소
  - 제작자의 정보나 저작권 정보 등과 같이 꼬리말에 놓이는 내용을 담는다.(홈페이지 하단에 나오는 정보들...)
 (실제로 header 와 footer 요소는 위의 예시 그림을 보면 알 수있다.)
 
<header> 머리말 </header>
<section>
    본문 제목 및 내용
</section>
...
<footer> 꼬리말 </footer>
 

▷ nav 요소

  - 주로 전체 웹 페이지에 적용되는 네비게이션 메뉴(GNB)를 나타낸다.
  - 일반적으로 웹 페이지의 상단에 적용된다. (쉽게 말해 메뉴바들을 보통 nav태그를 사용합니다.)
 

▷ aside 요소

  - 주요 콘텐츠 이외에 남아 있는 콘텐츠 등을 나타낸다.

  - 웹 페이지의 사이드 바 영역 등을 지정하는데 사용될 수 있다.

  (위의 실 예제를 보시면 아시겠지만 양옆을 지정해줄때 사용합니다. 홈페이지에서는 사이드바에 사용되구요)

<header> 머리말 </header>
<nav> 메뉴들 </nav>
<section>
    본문 제목 및 내용
</section>
...
<aside> 사이드바 </aside>
<footer> 꼬리말 </footer>
 

 

결과적으로 최종 구조는 다음과 같겠다.

 
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>시맨틱 구조</title>
</head>
<body>
    <header> 머리말 </header>
    <nav>메뉴바</nav>
    <section>
    본문 제목 및 내용
        <article> 콘텐츠 </article>
    </section>
<aside> 사이드바 </aside>
<footer> 꼬리말 </footer>
</body>
</html>

 

모두 다같이 HTML5 공부 화이팅 합시다.

반응형


댓글

TOP