이 글은 코딩 자율학습 HTML+CSS+JS(저자 : 김기수)의 책 내용과 유튜브 영상을 개인적으로 정리하는 글입니다.
시맨틱 태그란?
웹이 점차 발전하고 웹이 가진 정보의 가치가 높아지면서 사람이 아닌 기계도 쉽게 이해할 수 있도록 웹 페이지를 더욱 의미 있게 설계하는 일이 매우 중요해졌다.
이에 따라 새롭게 등장한 트렌드가 시맨틱 웹이다.
시맨틱 태그는 태그의 이름만으로 태그의 용도나 역할에 대한 의미가 명확한 태그를 말한다.
대표적으로 table, form, a 태그등은 시맨틱 태그에 속하고, div, span 태그등은 논 시맨틱 태그에 속한다.
table, form, a 태그는 HTML 문서의 구성 요소로는 적합할지 몰라도 전체 구조를 설계할만한 태그는 아니다.
그래서 웹 페이지의 구조를 설계하기 위한 목적으로 HTML 5에서 시맨틱 태그가 새롭게 추가됐다.
header 태그
header 태그는 웹 페이지에서 헤더 영역을 구분하는 데 사용한다.
헤더 영역은 웹 사이트의 최상단이나 좌측에 위치하고, 로고, 검색, 메뉴와 같은 요소들을 포함한다.
<header>
헤더 구성 요소
</header>
nav 태그
nav(navigation) 태그는 웹 페이지에서 내부의 다른 영역이나 외부를 연결하는 링크 영역을 구분하는 데 사용
보통 링크 영역에는 아래 사진처럼 헤더 영역에서의 메뉴나 목차와 같은 요소가 많은데, 내부나 외부를 연결하는 링크가 전부 nav 태그일 필요는 없고, 웹 사이트의 주요 탐색 링크 영역만 포함하면 된다.
<nav></nav>
section 태그
section 태그는 웹 페이지에서 논리적으로 관련 있는 내용 영역을 구분할 때 사용한다.
그래서 보통 section 태그는 내용의 제목을 나타내는 hn 태그 중 하나를 포함한다.
아래 사진은 네이버에서 section 태그로 영역을 구분하면 좋을 만한 웹 페이지 구성 요소를 보여 준다.
한 페이지 안에서 ‘뉴스스탠드, 오늘 읽을만한 글’처럼 논리적으로 내용 영역을 구분할 때, section 태그를 사용하면 된다.
<section></section>
article 태그
article 태그는 웹 페이지에서 독립적인 영역을 구분할 때 사용한다.
article 태그를 section 태그와 혼동하기도 하는데, section 태그는 웹 페이지 안에서 관련 있는 내용을 구분하고, article 태그는 어떤 웹 페이지에서든 독립적으로 사용될 수 있는 영역을 구분한다는 점에서 차이가 있다.
네이버에서는 아래 사진처럼 로그인 영역이 article 태그로 구분하면 좋은 영역입니다. 실제로 로그인 영역은 메인 페이지에서도 사용하지만, 전혀 다른 페이지인 블로그 페이지 등에서도 사용하기 때문.
<article></article>
aside 태그
aside 태그는 웹 페이지 안에서 주력 내용이나 독립적인 내용으로 보기 어려워서 article 태그나 section 태그로 영역을 구분할 수 없을 때 사용한다.
<aside></aside>
footer 태그
footer 태그는 웹 페이지에서 푸터 영역을 구분할 때 사용한다.
푸터 영역은 일반적으로 웹 페이지의 최하단에 있고, 저작권 정보, 연락처, 사이트 맵 등의 요소들을 포함한다.
<footer></footer>
main 태그
main 태그는 웹 페이지의 주요 내용을 지정할 때 사용하는 태그이다.
main 태그에는 문서에서 반복해서 등장하는 요소를 포함해선 안 된다.
그리고 main 태그를 article, aside, footer, header, nav 태그의 하위에 포함할 수도 없다.
그래서 사용하기가 조금 까다로운 태그이다.
<main></main>
추가적인 시맨틱 태그는 아래의 링크에서 확인할 수 있다.
https://developer.mozilla.org/ko/docs/Glossary/Semantics
'HTML & CSS > HTML' 카테고리의 다른 글
[HTML] 글로벌 속성 (0) | 2023.10.31 |
---|---|
[HTML] 멀티미디어(오디오, 비디오) 삽입하기 (0) | 2023.10.29 |
[HTML] 표 만들기 (0) | 2023.10.28 |
[HTML] 폼 태그(form tag) (0) | 2023.10.28 |
[HTML] 웹 문서에 다양한 내용 입력하기 (0) | 2023.03.03 |