HTML – ③ 웹 문서 구조를 만드는 시맨틱 태그

시맨틱 태그?

의미론은 “중요한” 또는 “의미론적인”을 의미하는 형용사입니다.

따라서 시맨틱 태그는 말 그대로 의미가 있는 태그입니다.

반면에 div나 span과 같은 의미 없는 태그는 태그 이름으로 식별할 수 없으며,

양식, 표, 기사 등과 같은 의미 있는 태그는 내용을 명확하게 정의합니다.

우리가 자주 사용하는 웹 사이트의 디자인은 다르게 보일 수 있지만 기본 구조는 비슷합니다.

머리글에는 페이지 제목 또는 로고, 본문 영역, 바닥글 영역 및 사이드바가 포함됩니다.

시맨틱 태그를 사용하는 이유

시맨틱 태그 없이 웹사이트를 구축할 수 있습니다.

그렇다면 시맨틱 태그를 사용하는 이유는 무엇입니까?

  1. 웹 브라우저는 HTML 소스 코드만 보고 제목과 본문을 쉽게 구분할 수 있습니다.
  2. 시각 장애가 있는 사용자가 스크린 리더로 페이지를 탐색할 수 있도록 도와줍니다.
  3. 끝없는 div(div > div > div…)를 탐색하는 것보다 훨씬 쉽습니다.
  4. 이 코드의 명확한 의미 체계를 개발자에게 전달합니다.

헤더

로고, 아이콘, 페이지 제목과 같은 소개 콘텐츠를 추가하세요.

헤더와 헤드는 이름은 비슷하지만 의미는 완전히 다릅니다.

GPS

웹 페이지 내에서 다른 영역을 구분하거나 링크 아웃하기 위한 메뉴, 목차 등에 사용됩니다.

<header>
    <h1>회사 로고 및 이름</h1>
    <nav>
    <ul>
        <li><a href="#">메뉴1</a></li>
        <li><a href="#">메뉴2</a></li>
        <li><a href="#">메뉴3</a></li>
    </ul>
    </nav>
 </header>

부분

웹 페이지에서 논리적으로 관련된 콘텐츠 영역을 분리하는 데 사용됩니다.

기사

웹 페이지에서 독립된 영역을 구분하기 위해 사용합니다.

article 태그는 section 태그와 혼동되는 경우가 있는데 section 태그는 웹 페이지 내 관련 콘텐츠를 구분하고 article 태그는 웹 페이지에서 독립적으로 사용할 수 있는 영역을 구분한다는 점에서 차이가 있습니다.

곁에

본문 텍스트의 왼쪽, 오른쪽 또는 하단에 사이드바를 만듭니다.

사이드바는 일반적으로 웹 사이트에 필요하지 않으므로 필요한 경우에만 만드십시오.

주로

이 태그는 웹 페이지의 주요 콘텐츠를 표시하는 데 사용됩니다.

기본 태그에는 문서에서 반복되는 요소가 포함되어서는 안 됩니다.

그리고 기사, 페이지, 바닥글, 머리글 또는 탐색 태그의 하위 태그로 기본 태그를 삽입할 수 없습니다.

보행인

일반적으로 섹션의 저자, ​​저작권 날짜 또는 관련 문서에 대한 링크에 대한 정보를 포함합니다.

<!DOCTYPE html>
<html>
  <head>
    <title>시맨틱 태그 예제</title>
  </head>
  <body>
    <header>
      <h1>회사 로고</h1>
      <nav>
        <ul>
          <li><a href="#">메뉴1</a></li>
          <li><a href="#">메뉴2</a></li>
          <li><a href="#">메뉴3</a></li>
        </ul>
      </nav>
    </header>
    <main>
      <article>
        <header>
          <h2>글 제목</h2>
          <p>작성일: 2023년 3월 3일</p>
        </header>
        <p>본문 내용이 들어갑니다.</p>
        <p>본문 내용이 들어갑니다.</p>
        <p>본문 내용이 들어갑니다.</p>
        <footer>
          <p>작성자: John Doe</p>
        </footer>
      </article>
    </main>
    <footer>
      <p>저작권 © 2023 회사명. All rights reserved.</p>
    </footer>
  </body>
</html>


예시

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Dream Jeju</title>
    <link rel="stylesheet" href="http://developyanggaeng.m/./css/style.css">
</head>
<body>
    <div id="container">
        <header>
            <div id="logo">
                <a href="#">
                    <h1>Dream Jeju</h1>
                </a>
            </div>
            <nav>
                <ul id="topMenu">
                    <li><a href="#">단체 여행</a></li>
                    <li><a href="#">맞춤 여행</a></li>
                    <li><a href="#">갤러리</a></li>
                    <li><a href="#">문의하기</a></li>
                </ul>
            </nav>
        </header>
        <main class="contents">
            <section id="healing">
                <h2>몸과 마음이 치유되는 섬</h2>
                <div class="detail">
                    <img src="images/healing.jpg" alt="힐링이미지">
                    <b><p>쉼(Healing)의 공간으로 안내 합니다.</p></b>
                    <p>탁 트인 바다, 시원한 바람에 몸을 맡기고 뚜벅뚜벅 
                    오름을 오르고 올렛길을 걷다보면 온전히 나에게 집중할 수 있습니다.</p>
                </div>
                <div class="schedule">
                    <h3>상세 일정</h3>
                    <ul>
                        <li>여행 기간 : 2박 3일</li>
                        <li>여행 일정 : 여행 일정은 상담을 통해 결정 및 조정 가능 합니다.</li>
                    </ul>
                </div>
            </section>
            <section id="activity">
                <h2>다양한 액티비티가 기다리는 섬</h2>
                <div class="detail">
                    <img src="images/activity.jpg" alt="액티비티">
                    <b><p>모험과 스릴이 넘치는 레저의 천국으로 안내 합니다.</p></b>
                    <p>둘러보기만 하는 여행을 하셨나요? </p>
                    <p>하늘을 날며 시원한 바다를 내려다보는 패러글라이등과 
                    투명한 물빛 속을 여행하는 스킨스쿠버... 아름다운 제주 해안도로를 
                    씽씽 전동바이크나 전동킥보드로 달려보세요. 
                    시원한 바다를 가까이에서 느낄 수 있는 요트 체험과 
                    배낚시도 빼놓을 수 없겠죠?</p>
                </div>
            </section>
        </main>
        <footer>
            <section id="bottomMenu">
                <ul>
                    <li><a href="#">회사 소개</a></li>
                    <li><a href="#">개인 정보 처리 방침</a></li>
                    <li><a href="#">여행 약관</a></li>
                    <li><a href="#">사이트맵</a></li>
                </ul>
            </section>
        </footer>
    </div>
</body>
</html>
* {
    margin: 0; /* margin 초기화 */
    padding: 0; /* padding 초기화 */
    box-sizing: border-box; /* 중요! */
}
a {
    text-decoration: none;
}
ul {
    list-style: none;
}
/* #은 id 선택자 */
#container {
    margin: 0 auto; /* 화면 중앙에 배치 */
    width: 1200px; /* 너비 */
    background-color: antiquewhite;
}
header {
    /* 100% 크기는 상위 영역의 크기를 따라감 */
    width: 100%; 
    height: 100px;
    background-color: #045;
}
#logo {
    float: left;
    width: 250px;
    height: 100px;
    line-height: 100px;
    padding-left: 20px;
}
#logo h1 {
    font-weight: 700px;
    font-size: 40px;
    color: white;
}
nav {
    float: right;
    width: 900px;
    height: 100px;
    padding-top: 40px;
}
#topMenu {
    height: 60px;
}
#topMenu > li {
    float: left;
}
#topMenu > li > a {
    display:block;  /* 링크 텍스트는 블록으로 */ 
    font-size:1.1em;
    color:#fff;  /* 글자 색 */
    font-weight:600;  /* 글자 굵기 */
    padding:20px 60px;  /* 패딩 */ 
}
#topMenu > li > a:hover {
    color:#1fa8f8;
    text-shadow:0 -2px #222;
}

/* 본문 */
.contents {
    width:1000px;
    margin:50px auto;  
}
main > section {
    margin-top:60px;  
}
main h2 {    
    font-size:1.5em;
    line-height: 2.5;
}
main div {
    margin-top:20px;
}
main h3 {
    font-size:1.2em;
    line-height:2.2;
}
.detail p {
    line-height: 2.0;
    color:#222;
}
.detail > img {
    float:left; 
    margin-right:50px;
    border-radius:20px;
}
.schedule h4 {
    font-size:1.2em;
}
.schedule ul {
    list-style: none;
}
.schedule ul li { 
    line-height: 2;
}

/* 푸터 영역 */
footer{   
    width:1200px;   /* 너비 */
    height:100px;  /* 높이 */
    border-top:2px solid #222;
}
#bottomMenu{
    width:100%;
    height:20px;
    margin-left:60px;
}
#bottomMenu ul {
    margin-top:15px;  
}
#bottomMenu ul li{
    float:left;  /* 가로로 배치 */ 
    padding:5px 20px;
    border-right:1px solid #ddd;   /* 항목 오른쪽에 테두리 */ 
}
#bottomMenu ul li:last-child{
    border:none;  /* 마지막 항목에는 오른쪽 테두리 없음 */  
}
#bottomMenu ul li a, #bottomMenu ul li a:visited {  
    font-size:15px;  /* 글자 크기 */ 
    color:#666;   /* 글자 색 */ 
}


전역 속성

클래스 속성

요소에 클래스 이름을 할당하는 데 사용됩니다. 클래스 이름은 CSS에서 클래스 선택자로 사용되며 여러 요소가 동일한 클래스 이름을 반복적으로 가질 수 있습니다.

<p class="red"> ... </p>

아이디 속성

항목에 ID를 할당하는 데 사용됩니다. ID는 CSS에서 ID 선택자로 사용되며 중복될 수 없습니다.

<p id="red"> ... </p>

스타일 속성

CSS 코드를 인라인으로 작성할 때 사용합니다.

제목 속성

title 속성은 요소에 추가 정보를 추가하는 데 사용됩니다.

title 속성에 입력한 값은 요소 위로 마우스를 가져가면 툴팁으로 표시됩니다.