티스토리 뷰

◎ 구조를 타나내는 요소

 

1. 컨테이너

○ <div> : 컨텐츠 분할요소. css로 꾸며주기 전에는 컨텐츠나 레이아웃에 어떠한 영향도 주지 않음.

              순수 컨테이너로 아무 의미도 갖지 않음. 블럭레벨로 작동함.

○ <span> : 구문 컨텐츠를 위한 통용 인라인 컨테이너. 

 

 

 

 

2. 시멘틱 웹 (Semantic web)

● 시멘틱 : 의미의, 의미론적인 ↔ non-semantic

● 요소의 의미를 고려하여 구조를 설계하고 코드를 작성

<div>로 구역을 나눈다면 해당 구역이 의미하는 바가 잘 보이지 않음.

시멘틱 태그로 나타내기

▶ 의미론적인 마크업 사용시 이점

  • 검색엔진은 의미론적 마크업을 분석하여 중요한 키워드로 간주하기 때문에 필요한 정보를 바로 찾을 수 있음
  • 스크린 리더로 페이지를 탐색할 때, 의미론적 마크업을 푯말로 사용하므로 웹 접근성이 좋음
  • 의미있는 코드 블록을 찾는게 가독성이 좋음
  • 개발자에게 태그 안에 채워질 데이터유형을 제안하므로 프로젝트 시 유용함
  • 의미있는 이름짓기(semantic naming)는 적절한 사용자 정의 요소/ 구성 요소의 이름짓기를 반영함

○ <header> : 소개 및 탐색에 도움을 주는 컨텐츠를 나타냄. 제목, 로고, 검색폼, 작성자 이름 등을 포함.

                    페이지 내에 이동을 하더라도 고정된 위치에 존재하는게 일반적.

                    다른 <header>를 제외한 플로우 컨텐츠를 가질 수 있음.

○ <footer> : 가장 가까운 구획 컨텐츠나 구획 루트의 푸터를 나타냄. 구획의 작성자, 저작권 정보, 관련 문서 등을 담음.

                    페이지 내에 이동을 하더라도 고정된 위치에 존재하는게 일반적.

                    다른 <footer>를 제외한 플로우 컨텐츠를 가질 수 있음.

○ <nav> : 탐색 구획 요소. 문서의 부분 중 현재 페이지 내 또는 다른 페이지로의 링크를 보여주는 구획을 나타냄.

               메뉴, 목차, 색인으로 자주 쓰임. 현재 웹 페이지 내 개요 또는 상위 요소를 표시

○ <aside> : 별도 구획 요소. 문서의 주요 내용과 간접적으로만 연관된 부분(단어의 뜻, 관련 컨텐츠 등)을 나타냄.

                  주로 사이드바 혹은 콜아웃 박스로 표현. css로 위치를 조정할 수 있음.

 

○ <main> : 문서 <body>의 주요 컨텐츠를 나타냄. 문서에 한 개만 존재해야함.(hidden속성 사용시 안보임)

                 주요 컨텐츠 영역은 문서의 핵심 주제나 앱의 핵심 기능에 직접적으로 연결되있거나

                 확장하는 컨텐츠로 이루어짐. 가장 바깥쪽 요소.

○ <article> : 문서, 페이지, 애플리케이션 또는 사이트 안에서 독립적으로 구분해 배포하거나 재사용할 수 있는 구획 표시

                   게시판, 블로그 글, 매거진이나 뉴스기사 등으로 사용.

                  하나의 페이지에 여러개의 <article>을 가질 수 있음. 여러개의 <section>이 자식 요소로 들어갈 수 있음.

                 각각의 <article>을 식별하기 위해 제목(<h1>~<h6>)요소를 자식으로 포함.

○ <section> : 일반 구획 요소. HTML문서의 독립적인 구획을 나타내며, 더 적합한 의미를 가진 요소가 없을 때 사용.

                     일반적으로 제목을 포함. 단독적인 컨텐츠가 아닌 경우 <article>대신 사용.

                     제목요소를 포함해 식별. 문서 요약에 해당 구획이 논리적으로 나타나야한다면 사용.

                    일반 컨테이너로 사용은 X. 단순한 스타일링이 목적이라면 <div>사용.

 

 

 

 

 

 

3. 목록과 표

① 목록 (중첩 가능)

○ <ol> : 순서가 있는 목록(정렬목록). 순위를 나타내거나 단계를 나타낼 때 적합.

            보통 숫자 목록으로 표현.

● 속성

▶ type : 항목을 셀 때 사용할 카운터 유형(기본값은 숫자).

  • a : 소문자 알파벳
  • A : 대문자 알파벳
  • i : 소문자 로마숫자
  • I : 대문자 로마숫자

▶ start : 항목을 셀 때 시작할 수.

              type이 로마숫자나 알파벳인 경우에도 아라비아숫자로 나타낸 정수만 입력 가능.

    <ol type="I" start="3">
        <li>하나</li>
        <li>둘</li>
        <li>셋</li>
        <li>넷</li>
    </ol>

3을 나타내는 로마숫자로 시작

→<li>태그의 value속성으로 대체 가능(단, 설정된 항목 이전은 순서대로 나옴)

    <ol type="A">
        <li>하나</li>
        <li value="4">둘</li>
        <li>셋</li>
        <li>넷</li>
    </ol>

▶ reserved : 목록의 순서의 역전 여부. 기본값은 false인데 설정시 true가 됨.

    <ol type="A" reversed>
        <li>하나</li>
        <li>둘</li>
        <li>셋</li>
        <li>넷</li>
    </ol>

○ <ul> : 순서가 없는 목록(비정렬목록). 아이템을 나타내는 형태.

            하위 요소로 <ul>이 들어올 수 있음. 점(bullet point)으로 표현.

○ <li> : 항목을 나타냄.

 

 

 

 

② 정의 목록 

○ <dl> : 설명 목록을 나타냄(주로 용어의 설명). 

            <dl>은 <dt>로 표기한 용어와 <dd>요소로 표기한 설명 그룹의 목록을 감싸서 설명 목록을 생성.

            주로 용어사전 구현이나 메타데이터(키-밸류 쌍 목록)를 표시할 때 사용.

            1:1로 매칭될 수도 있고, 하나의 <dt>에 여러개의 <dd>가 들어올 수 있음.

             웹 표준에 의거하면 <dl>의 안에서 <dt>, <dd>는 <div>와 형제관계가 될 수는 없음. (<div>로 감싸주기)

○ <dt> : 용어를 나타냄.

○ <dd> : 용어에 대한 설명을 나타냄.

 

 

 

③ 표

○ <table> : 행과 열로 이루어진 표.

                  복잡한 데이터의 형식을 2차원의 행과 열로 표시.

○ <tr> : 표의 행(row)을 나타냄. 열(column)을 나타내는 항목을 가짐.

○ <th> : table head로 행이나 열을 대표하는 통칭 명칭을 나타냄.

 ● 속성 

▶ scope : 헤더의 요소와 관련된 셀을 정의.(무엇을 대표하는지)

                 스크린리더로 읽을 시 접근성을 높이기위함.(브라우저에는 표시 안됨)

  • row : 헤더가 속한 행의 모든 셀과 관련
  • col : 헤더가 속한 열의 모든 셀과 관련

○ <td> : table data로 표에 들어가는 데이터.

● 속성

▶ colspan : 셀이 확장되는 열의 수.

 

표의 구역을 나눈다면?

○ <thead> : 표의 열의 머리글인 행들의 집합.

○ <tbody> : 표의 본문 요소. <tr>을 묶어 본문을 구성. 내용을 분류하기 위해 여러개가 들어갈 수 있음.

○ <tfoot> : 표의 바닥글 요소. 열을 요약하는 행들의 집합.

※ <thead>와 <tr>은 형제관계가 될 수 없다.(웹 표준에 의거)

<tbody>와 <tfoot>만 가능.

 

○ <caption> : 표 설명 요소. 표의 설명 또는 제목을 나타냄.

                    가운데 정렬이 자동으로 들어감. ★<table>요소의 첫 번째 자식이어야함★(아래에 두고싶다면 css로 설정)

                    <table>요소가 <figure>요소의 유일한 자식인경우 <figcaption>을 사용.

 

728x90

'코딩 > 코딩노트' 카테고리의 다른 글

[JavaScript] - 객체(+window객체), 변수와 상수  (0) 2023.01.14
[JavaScript] DOM  (0) 2023.01.07
HTML정리 - 임베디드 요소  (0) 2022.11.12
HTML정리 - 개발 환경, 텍스트 요소  (1) 2022.11.10
HTML 정리  (0) 2022.11.05