반응형

pc에서는 문제가 없지만 모바일에서의 table 태그에 작성한 내용들이

내가 원하는 width값을 먹지 못하고 틀어지는 경우가 종종 있다.

 

<colgroup>과 <col>태그를 사용해서 width 값을 줘도,

css를 통해 width값을 아무리 줘도 내가 원하는 값을 출력하지 못하는 경우가 있는데

 

이 경우 caption 태그 사용에 대해 살펴봐야한다.

 

1. table태그 width값 적용 문제 (with. caption태그)

<style>
  table{table-layout:fixed; border-collapse:collapse; border-spacing:0;}
  table caption{position:absolute; width:1px; height:1px; overflow:hidden; font-size:0;}
  table thead th{background:#999; color:#fff;}
  table th, td{height:30px; text-align:center;}
</style>

<table>
  <caption>학생별 과목 평균점수</caption>
  <colgroup>
    <col style="width:40%">
    <col style="width:30%;">
    <col style="width:30%;">
  </colgroup>
  <thead>
    <tr>
      <th scope="col">이름</th>
      <th scope="col">과목</th>
      <th scope="col">평균점수</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>김철수</td>
      <td>영어</td>
      <td>80점</td>
    </tr>
    <tr>
      <td>김세미</td>
      <td>수학</td>
      <td>60점</td>
    </tr>
    <tr>
      <td>김티스토리</td>
      <td>체육</td>
      <td>40점</td>
    </tr>
    <tr>
      <td>철수세미</td>
      <td>음악</td>
      <td>100점</td>
    </tr>
  </tbody>
</table>

위와 같이 table을 만들었을 때 pc에서는 내가 원하는 모양대로 노출이 되지만

모바일 safari 혹은 chrome에서

위와 같은 모습으로 너비 값을 인식하지 못하고 틀어져 노출이 되는 경우가 있을 것이다.

위와 같은 현상이 생길 경우 가장 먼저 확인해야할 것이 caption 태그이다.

 

2. table 너비 인식 문제 해결 (caption: absolute)

caption태그는 테이블의 접근성 향상을 위해 해당 table이 어떤 내용들을 담고 있는지

요약하여 설명해주는 텍스트를 담고 있다. 그래서 caption을 쓰는 경우가 많은데

2021.01.27 - [Frontend/HTML] - [html 태그] caption 태그 (table 태그, summary 속성)

 

위 1번에서 사용한 css를 보면 caption태그를 html 구조상에만 남겨두고 실제 페이지 노출시 안보이게 하기 위해

position:absolute를 사용하여 숨기는 내용의 css를 사용했는데

 

caption 태그에 absolute가 들어가게 되면 모바일 safari, chrome 등에서 table의 너비 자체를 인식 못하는 버그가 있기 때문에 caption태그를 숨기기 위해서는 absolute를 사용해서 띄워서 숨기는 것이 아닌 다른 방식으로 caption태그를 숨겨줘야한다.

<style>
  table{table-layout:fixed; border-collapse:collapse; border-spacing:0;}
  table caption{font-size:0; text-indent:-9999px;}
  table thead th{background:#999; color:#fff;}
  table th, td{height:30px; text-align:center;}
</style>

caption에 해당하는 css를 font-size, text-indent를 사용해서 숨겨주는 방식을 사용해서 absolute를 사용하지 않는다면

내가 원하는 위와 같은 table의 너비 값을 얻을 수 있다.

 

 

 

 

반응형
반응형

일반적으로 버튼을 만들고 해당 버튼을 클릭하면

내부에 있는 내용이 노출될 수 있도록 작업을 하는 경우에

자바스크립트를 사용해서 관련 내용을 만든다.

 

하지만 html5에 들어서면서 이러한 내용들을 html만을 이용해서 만들 수 있게 되었다.

 

1. details 태그의 사용

<details> 태그는 html5에서 추가 된 태그로 

하위 요소로 <summary> 태그를 사용해서 <detail> 태그 안의 내용을 열기/닫기를 통해 보여준다.

<details>
  <summary>사내 공지사항</summary>
  <ul>
    <li>1. 공지사항 1번입니다.</li>
    <li>2. 공지사항 2번입니다.</li>
    <li>3. 공지사항 3번입니다.</li>
  </ul>
</details>

<details>
  <summary>사내 최고봉</summary>
  <div>사장님</div>
</details>

 

 

기본적인 사용 방법은 위와 같다.

<details>태그 안에 하나의 <summary>태그와 그 뒤에 추가적인 태그로 구성된다.

 

이 때, <summary> 태그 뒤에는 <ul>, <li>태그와 같이 리스트 형식으로 태그를 작성해도 되고

<span>이나 <div>를 나열해도 원하는 결과를 받을 수 있다.

(보여지는 내용이 리스트 형식이라면 리스트 태그 사용 추천)

 

2. details 태그의 활용

details 태그에 css로 스타일을 입혀서 좀 더 보기 좋게 만들 수 있다.

그리고 <summary> 태그 뒤에 오는 내용들에 <a>태그나 <button> 태그를 사용해서

버튼의 역할을 부여할 수도 있다.

<style>
  details{margin-bottom:10px;}
  details summary{padding:0 10px; background:#000; color:#fff; height:35px; line-height:35px; font-weight:bold; cursor:pointer;}
  details summary::marker{font-size:0;}
  details ul{border:1px solid #aaa;}
  details ul li a{display:block; padding:5px 10px;}
  details ul li a:hover{background:#333; color:#fff;}
  details .txt{border:1px solid #999; padding:5px 10px; text-align:center;}
</style>

<details>
  <summary>사내 공지사항</summary>
  <ul>
    <li><a href="#">1. 공지사항 1번입니다.</a></li>
    <li><a href="#">2. 공지사항 2번입니다.</a></li>
    <li><a href="#">3. 공지사항 3번입니다.</a></li>
  </ul>
</details>

<details>
  <summary>사내 최고봉</summary>
  <div class="txt">사장님</div>
</details>

 

 

위 예시와 같이 css는 내가 원하는대로 정의할 수 있다.

cursor:pointer를 사용해서 버튼과 같이 마우스 오버했을 때 손가락 모양으로 노출시킬 수도

:marker{font-size:0;}을 통해 <summary>태그 앞에 붙은 화살표 모양을 없앨 수도 있다.

 

3. details 태그 사용의 주의사항

<details> 태그는 인터넷 익스플로어에서는 사용할 수 없기 때문에 익스플로어를 고려한 작업시에는 사용하지 말아야한다.

인터넷 익스플로어의 사용이 줄고 있고 곧 서비스가 종료가 되지만 아직까지 지원하려고 하는 회사가 있기 때문에

사용시 주의가 필요하다.

 

 

 


참고

https://developer.mozilla.org/ko/docs/Web/HTML/Element/details

 

 

 

반응형
반응형

figure 태그와 figcaption 태그는 html5에 들어서 추가된 태그이며

이미지, 삽화, 도표 등의 내용을 담는 태그이다.

 

1. figure 태그

figure 태그는 문서의 내용과 상관은 있지만

figure 태그가 제거 되거나 다른 곳으로 이동해도 문서의 내용에 영향을 주지 않아야 한다.

 

<figure>
  <img src="./icecream.jpg" alt="바닐라 아이스크림이 녹는 모습">
</figure>

태그의 사용은 기본적으로 figure 태그 안에 img태그를 넣어 사용한다.

 

 

2. figcaption 태그

figcaption 태그는 이전에 table 태그에 대해 다룰 때 사용했던 caption 태그와 유사하게

figure 태그 안에 있는 내용에 대한 설명을 나타낸다.

 

즉, table태그 안에 caption태그는 table 내용을 설명하고

figure태그 안에 figcaption태그는 figure 태그 안에 있는 내용을 설명한다.

 

2021/01/27 - [Frontend/HTML] - [html 태그] caption 태그 (table 태그, summary 속성)

 

<figure>
  <figcaption>바닐라 아이스크림</figcaption>
  <img src="./icecream.jpg" alt="바닐라 아이스크림이 녹는 모습">
</figure>

태그의 사용은 figure 태그 안에 사용하고

figure 태그 안에 제일 처음 혹은 제일 마지막 자식으로 위치할 수 있다.

 

[!] 여러개의 figcaption 태그가 들어가게 되면 가장 첫 번째 자식으로 오는 figcaption 태그의 설명을 사용한다.

 

 

 


참고

developer.mozilla.org/ko/docs/Web/HTML/Element/figure

 

 

반응형
반응형

2020/12/29 - [Frontend/HTML] - [html 태그] table 태그 (tr, th, td태그)

 

table태그를 사용하면서

해당 table 영역이 어떤 내용을 담고 있는지를 설명해줄 수 있는 태그가

바로 caption 태그이다.

 

1. summary 속성

caption 태그에 대해 설명을 하기 전에 먼저 알아야할 속성이 있다.

table 태그에 적용하는 속성인데,

해당 table이 어떤 내용을 담고 있는지 요약해주는 속성이다.

<table summary="1학년 3반 학생들의 과학, 수학 성적을 보여줍니다.">
  <caption>성적표</caption>
  <thead>
    <tr>
      <th>이름</th>
      <th>과목</th>
      <th>성적</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th rowspan="2" scope="col">철수</th>
      <td>과학</td>
      <td>60점</td>
    </tr>
    <tr>
      <td>수학</td>
      <td>90점</td>
    </tr>
    <tr>
      <th rowspan="2" scope="col">영희</th>
      <td>과학</td>
      <td>100점</td>
    </tr>
    <tr>
      <td>수학</td>
      <td>80점</td>
    </tr>
  </tbody>
</table>

위와 같이 해당 table이 1학년 3반 학생들의 성적을 담고 있다고

table 내의 내용을 요약해서 보여준다.

 

이처럼 유용하게 사용할 수 있는 속성이지만,

summary 속성은 html5에 들어서는 표준이 아닌 속성이 되었다.

 

2. caption 태그

caption 태그는 table 태그의 첫번째 자식 요소로 위치해야한다.

<table>
  <tr>
    <th>이름</th>
    <td>철수</td>
  </tr>
  <caption>학생 이름</caption>
</table>

*위와 같이 tr태그나 기타 다른 태그 뒤가 아닌 table태그 바로 아래에 위치해야한다.

 

 

caption 태그는 html5 이전에는

table의 제목만 간단하게 나타내는 태그였다.

 

하지만 html5 부터는 summary 속성이 비표준이 되면서

caption 태그가 table 내용의 간단한 요약 및 제목을 나타내는 태그가 되었다.

<table>
  <caption>성적표, 1학년 3반 학생들의 수학, 과학 성적을 보여줍니다.</caption>
  <thead>
    <tr>
      <th>이름</th>
      <th>과목</th>
      <th>성적</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th rowspan="2" scope="col">철수</th>
      <td>과학</td>
      <td>60점</td>
    </tr>
    <tr>
      <td>수학</td>
      <td>90점</td>
    </tr>
    <tr>
      <th rowspan="2" scope="col">영희</th>
      <td>과학</td>
      <td>100점</td>
    </tr>
    <tr>
      <td>수학</td>
      <td>80점</td>
    </tr>
  </tbody>
</table>

 

 

반응형
반응형

예전에는 table 태그를 레이아웃을 구축하는 용도로 많이 사용했지만

요즘엔 table 태그는 단순한 테이블 영역을 위해 사용된다.

 

1. table 태그의 기본 구조

table 태그는 단독으로 사용되진 않는다.

자식 요소로 thead, tbody, colgroup, caption, tr, th, td 등의 여러 태그들과 함께 쓰인다.

 

가장 기본적인 구조는 하나 이상의 tr, th, td 태그들과 함께 구성이 된다.

 

과목 점수
수학 100점
국어 80점

 

<table>
  <tr>
     <th>과목</th>
     <th>점수</th>
  </tr>
  <tr>
     <td>수학</td>
     <td>국어</td>
  </tr>
  <tr>
     <td>100점</td>
     <td>80점</td>
  </tr>
</table>

위의 소스는 가장 기본적인 구조인 tr, th, td 태그만 사용해서 적용한 모습이다.

 

<table>
  <thead>
     <tr>
       <th>과목</th>
       <th>점수</th>
     </tr>
  </thead>
  <tbody>
    <tr>
       <td>수학</td>
       <td>100점</td>
    </tr>
    <tr>
       <td>국어</td>
       <td>80점</td>
    </tr>
  </tbody>
</table>

위와 같은 소스라면 thead 영역에 tbody의 각 영역들에 대한 제목을

tbody 영역에는 thead의 제목에 대한 정보나 데이터가 노출될 수 있도록 한다.

 

2. tr 태그

tr태그는 table 태그에서 필수요소이며 th, td로 이루어져 있고

하나의 행(row)을 나타낸다.

즉, tr이 사용되면 tr 안에 있는 요소들은 하나의 행으로 처리가 된다.

 

3. th 태그

th는 테이블에서 요소별 제목을 나타낸다.

<table>
  <tr>
    <th>이름</th>
    <td>철수</td>
  </tr>
</table>

위의 소스에서 본다면 이름 : 철수가 노출되는 테이블에서

해당 행의 제목은 '이름' 이라는 정보이며 제목에 대한 데이터는 '철수' 라는 것을 알 수 있다.

 

주로 사용하는 속성은 rowspan, colspan, scope 등이 있다.

 

3-1. rowspan : 행 병합

<table>
  <tr>
    <th rowspan="2">이름</th>
    <td>철수</td>
  </tr>
  <tr>
    <td>영희</td>
  </tr>
</table>

 

이름 철수
영희

 

3-2. colspan : 열 병합

<table>
  <tr>
    <th colspan="2">이름</th>
  </tr>
  <tr>
    <td>철수</td>
    <td>영희</td>
  </tr>
</table>

 

이름
철수 영희

 

3-3. scope : th에서만 사용할 수 있는 속성으로 해당 th가 어떤 데이터와 연결이 되고 있는지 명시할 수 있다.

<table>
  <tr>
    <th scope="col">이름</th>
    <th scope="col">나이</th>
  </tr>
  <tr>
    <td>철수</td>
    <td>10살</td>
  </tr>
  <tr>
    <td>영희</td>
    <td>11살</td>
  </tr>
</table>

위의 경우 이름, 나이 라는 제목이 각각

이름은 철수, 영희가 포함된 열을

나이는 10살, 11살이 포함된 열의 제목으로 존재한다는 것을 명시한다.

 

scope 속성은 화면상 드러나는 시각적 효과는 없지만 스크린 리더와 같은 장치에서 데이터를 읽을 때 활용이 된다.

 

4. td 태그

th태그에서 정의한 제목 영역에 대한 데이터 및 정보를 나타낸다.

 

주로 사용하는 속성은 th와 비슷하게 colspan, rowspan 등을 사용하고

th와는 다르게 scope 속성은 사용할 수 없다. (html5 이전에는 사용할 수 있었다고 한다.)

 

 

반응형
반응형

웹 페이지 작업을 하면서 input태그는 뺄 수 없는 요소이다.

텍스트, 비밀번호, 체크박스, 버튼 등 여러가지 다양한 용도로 사용할 수 있다.

 

1. input 태그의 사용 (with. label)

기본적으로 input 태그는 닫기 태그가 없는 독립적인 태그이다.

<input type="타입">

html5 이전엔 input 태그 안에 닫기를 추가해줘야 했지만 이제는 생략해도 된다.

<input type="타입" />

 

그리고 input 태그는 label 태그와 주로 같이 사용이 되는데

label 태그와 input 태그를 연결 시켜준다.

(label의 for="" 와 input의 id 값)

<label for="inputName">이름 :</label>
<input type="text" id="inputName">

위의 태그와 같이 적용을 하게 되면

이름 : 영역을 클릭하게 되면 input 입력 영역이 포커스 된다.

 

그리고 웹접근성 측면으로 봤을 때도 해당 input 태그가 이름을 입력하는

input 인 것을 알려주는 역할을 할 수 있다.

 

예시)

 

 

type이 text인 경우 외에도 radio나 checkbox인 경우의 예를 들자면

<h3>성별</h3>
<ul>
   <li>
      <label>
         <input type="radio" name="gender">
         남성
      </label>
   </li>
   <li>
      <label>
         <input type="radio" name="gender">
         여성
      </label>
   </li>
</ul>

label에 for값과 input의 id값을 사용하지 않아도

label 태그 안에 input을 넣어서 해당 input이 label 태그 안에 있는 텍스트인 각 성별에 해당하는 것을 표시할 수 있다.

 

그리고 radio나 checkbox 의 경우 input에 name 속성을 서로 같게 맞춰줘서

연관이 있는 input임을 명시해주고 사용한다.

성별

  •  

2. input 태그 type 속성

input 태그에서 가장 중요한 것이 속성이다.

가장 중요하게 알아둬야 할 속성은 type이다.

 

해당 input 요소가 어떤 역할을 할 것인지를 결정한다.

속성 값 설명
text 기본 값으로 텍스트를 입력할 수 있다.
password 비밀번호를 입력하는 영역, 입력된 값은 *(별표) 형태로 노출된다.
file 파일을 선택할 수 있는 별도의 창을 만들 수 있다.
radio 라디오 버튼 - 공통된 name의 여러 버튼 중 한 가지를 선택할 수 있다. (단일선택)
checkbox 체크 버튼 - 공통된 name의 여러 버튼 중 여러가지를 선택할 수 있다. (다중선택)
button 일반적인 button 역할을 하는 버튼
submit 전송을 위한 버튼
hidden 일반적인 사용자들에게는 노출되지 않는 영역이지만 서버에 특정 값을 넘길 때 사용한다.
reset 초기화 버튼
image 이미지 형태의 전송 버튼
src 속성을 사용해 이미지를 적용한다.
<input type="image" src="test.jpg">

*html5 이후에 추가된 type 속성

속성 값 설명
number 숫자 입력 영역
tel 전화 번호 입력 영역
url 웹 페이지에 사용되는 url 입력 영역
date 날짜 입력 창 영역 (년, 월, 일)
month 년, 월을 선택하는 영역
week 년, 주를 선택하는 영역
time 시간 입력 영역
color 색상을 선택할 수 있는 창을 띄운다.
email email을 입력할 수 있는 영역
range 특정 범위를 마우스로 드래그앤 드롭 방식으로 입력할 수 있는 영역
search 검색어 입력 영역

html5에 추가 된 속성 값 같은 경우는

브라우저별로 적용이 안되는 경우도 있기 때문에

사용시에 크로스브라우징에 신경을 써서 작업이 필요하다.

 

 

 


참고

https://aboooks.tistory.com/295

 

 

반응형
반응형

html5에 새롭게 시맨틱한 마크업을 위해 추가 된 태그 중

특정 영역을 감싸는 용도로 사용하는 section, article 태그가 추가 되었다.

 

1. section 태그

section 태그는 주제별 영역들을 그룹화 하기위해 사용한다.

주로 자식 요소로 hn태그 (h1~h6) 태그와 일반적인 컨텐츠가 포함된다.

<section>
   <h1>상품소개</h1>
   <ul>
      <li>상품1</li>
      <li>상품2</li>
      <li>상품3</li>
   </ul>
   <p>상품의 실제이미지와 다를 수 있습니다.</p>
</section>

 

2. article 태그 (section 태그와 비교)

aricle 태그는 section과 마찬가지로 특정한 영역을 그룹화할 때 사용한다.

 

하지만 section 태그와는 다르게 article 태그는

해당 페이지에서 다른 페이지나 다른 영역에 언제든지 독립적으로 갖다 붙힐 수 있는 영역을 그룹화한다.

 

예를 들면

- 블로그 및 SNS 영역

- 뉴스 기사

- 신문 논평

등에서 사용한다.

<article>
   <h3>브랜드 페이스북</h3>
   <ul>
      <li>포스팅1</li>
      <li>포스팅2</li>
      <li>포스팅3</li>
   </ul>
</article>

 

즉, section은 영역을 감싸거나 구분할 때,

article은 영역을 나누지만 언제든 그 영역이 다른 페이지나 영역에 가져다 쓸 수 있는 것

 

 

반응형
반응형

마크업을 하다보면 a태그와 button태그의 차이와

어떤 부분에 a태그를 쓰고 또 어떤 부분에 button 태그를 써야하는지

기준이 헷갈리는 경우가 있다.

 

확실한 태그의 사용을 위해 연구가 필요하다.

 

a태그가 페이지의 이동, 페이지 내의 이동과 같은 상호작용의 역할을 한다면

button 태그는 클릭 이벤트와 같은 단순 클릭과 이벤트의 용도로 사용된다.

 

1. button 태그의 역할

button 태그의 역할에 대해 자세히 설명하기 위해 a태그와의 비교를 통한 설명이 필요할 것 같다.

 

- a태그

페이지의 이동, 페이지 내의 다른 영역으로의 이동 등 상호작용이 필요할 경우 사용된다.

 

- button태그

단순 클릭 이벤트, form요소에 입력된 내용을 서버로 전송할 때 사용된다.

 

2. button 태그 속성

button 태그의 주요 속성에 대해 알아본다.

속성 속성값 설명
autofocus autofocus 페이지를 로드했을 때 해당 버튼에 focus되게 적용한다.
(!) autofocus는 페이지에 하나만 적용할 수 있다.
disabled disabled 버튼이 클릭되지 않게 비활성화 한다.
form form id값 버튼과 연결 할 form 요소를 적용한다.
form 속성을 적용하지 않을 경우 조상 요소에 있는 form요소와 연결이 된다.
type - submit (기본 값)
- button
- reset
- submit : form 요소에 제출용으로 사용된다.
- button : 단순 클릭 이벤트용 버튼으로 사용된다.
- reset : 모든 컨트롤을 초기값으로 돌린다.

위의 속성 외에 formaction, formenctype, formmethod, formnovalidate, formtarget, name 등의 속성이 있다....

반응형
반응형

<address> 태그는 가까운 HTML 요소의 사람, 단체, 조직 등의 연락처 정보를 나타내는 태그이다.

 

1. address 태그의 표현

address 태그는 어느 요소(태그) 안에 사용이 되느냐에 따라

나타내는 정보가 조금씩 다르다.

 

보통은 <footer> 영역 안에 사용이 되는데,

그 경우 문서 전체의 연락 정보를 나타내고

<article> 태그 안에 존재하는 해당 <article> 영역 글에 대한 연락 정보를 나타낸다.

<body>
   <!-- 해당 article 영역의 연락 정보 -->
   <article>
      <p>(주) abcd 컴퍼티</p>
      <address>연락처 : 02-000-1234</address>
   </article>
   
   <!-- 문서 전체의 연락 정보 -->
   <footer>
      <address>
         회사 주소 : 서울시 oo구 oo로 11길 1010호 <br>
         연락처 : 010-1234-5678
      </address>
   </footer>
</body>

 

그리고 연락처 외의 정보 (ex. 출판일) 등의 정보는 담아서는 안된다.

 

2. address 태그의 기본 css

address태그가 기본적으로 갖고 있는 css 속성으로는

display:block / font-style:italic 속성이 적용되어 있다.

 

즉, block 요소임과 동시에 이탈릭체로 표현이 된 요소로 노출된다.

 

 

 


https://developer.mozilla.org/ko/docs/Web/HTML/Element/address

http://tcpschool.com/html-tags/address

 

 

 

반응형
반응형

html 구조에서 제목을 나타내는 태그가 있다. 바로 흔히 hn 태그라고 불리는

h1~h6 까지의 태그이다.

 

기본적으로 block요소의 성격과

h1부터 h6까지 텍스트의 크기가 다르게 설정이 되어있고 bold 처리가 되어있다.

 

사이즈 조정 및 bold 처리를 수정하기 위해서는

css로 별도의 조정이 필요하다.

 

그리고,

 

제목의 중요도나 분류에 따라 1부터 6까지 사용한다.

 

쓰임에 맞게 h1부터 h2, h3~ 순서에 맞게 작성하는 것이 좋다.

<h1>전체 공지사항</h1>
<section>
   <h2>인사 정보 관련 공지</h2>
   <div>
      <h4>인사 발령</h4>  <!-- (x) 순서에 맞게 h3태그를 사용하는 것이 좋다. -->
      <p>인사팀 홍길동 외 10명 특별 승진.</p>
   </div>
</section>

 

<h1>전체 공지사항</h1>
<section>
   <h2>인사 정보 관련 공지</h2>
   <div>
      <h3>인사 발령</h3>
      <p>인사팀 홍길동 외 10명 특별 승진.</p>
   </div>
</section>
<section>
   <h2>개발 본부 관련 공지</h2>
   <div>
      <h3>인사 발령</h3>
      <div>
         <h4>Frontend 개발자 승진 명단</h4>
         <p>김땡땡 외 3명</p>
         <h4>Backend 개발자 승진 명단</h4>
         <p>최땡땡 외 1명</p>
      </div>
      <h3>부서 운영비 개정</h3>
      <p>1인당 1만원에서 25만원으로 대폭 증가</p>
   </div>
</section>

 

 

반응형
반응형

2020/03/24 - [HTML] - [html 태그] ol, ul 태그 (목록 태그)

 

이 전에 포스팅 했던 ol, ul 등의 일반적인 목록형 태그 외에

정의형 목록을 나타내는 태그도 html 존재한다.

 

바로 dl 태그인데,

이 태그는 ol과 ul이 li태그와의 짝을 이루듯

 

dl태그도 하나 이상의 dt태그와 하나 이상의 dd 태그로 짝을 이룬다.

(!) 반드시 dl태그 안에는 dt, dd태그만 위치할 수 있다.
<dl>
   <dt></dt>
   <dd></dd>
</dl>

위와 같은 기본 구성을 담고있다.

 

1. <dl> 태그 (Definition List)

말 그대로 정의 목록을 나타내는 태그이다.

특정 용어에 대해 정의하는 제목과 그 제목에 대한 설명을 담는다.

기본적으로 block요소의 속성을 갖고 있다.

 

2. <dt> 태그 (Definition Term)

정의 되는 용어에 대한 제목을 나타낸다.

기본적으로 block요소의 속성을 갖고 있다.

 

3. <dd> 태그 (Definition Description)

정의된 제목에 대한 설명을 나타낸다.

기본적으로 block요소의 속성을 갖고 있다.

 

4. 정의형 목록 스타일

<dl>
   <dt>정의 제목</dt>
   <dd>정의 설명</dd>
</dl>

기본적으로 dt와 dd 태그를 따로 스타일을 주지 않고 출력을 하게되면

dd태그의 들여쓰기가 된 상태에서 출력이 된다.

 

그래서 원하는 화면을 만들기 위해서는

margin값을 조정하거나 float, display:inline-block 등 별도의 스타일을 추가해야한다.

 

 

또한 여러개의 dt태그와 하나의 dd태그의 구성,

하나의 dt태그와 여러개의 dd태그의 구성 등의 표현이 가능하다.

<dl>
   <dt>정의 제목1</dt>
   <dt>정의 제목2</dt>
   <dt>정의 제목3</dt>
   <dd>정의 설명</dd>
</dl>

<dl>
   <dt>정의 제목1</dt>
   <dt>정의 제목2</dt>
   <dt>정의 제목3</dt>
   <dd>정의 설명1</dd>
   <dd>정의 설명2</dd>
   <dd>정의 설명3</dd>
</dl>

<dl>
   <dt>정의 제목</dt>
   <dd>정의 설명1</dd>
   <dd>정의 설명2</dd>
   <dd>정의 설명3</dd>
</dl>

 

 

반응형

'Frontend > HTML' 카테고리의 다른 글

[html 태그] address 태그  (0) 2020.07.04
[html 태그] hn태그 (h1, h2, h3, h4, h5, h6)  (0) 2020.04.03
[html 태그] p태그  (0) 2020.03.25
[html 태그] ol, ul 태그 (목록 태그)  (0) 2020.03.24
[html 태그] a태그  (0) 2020.03.06
반응형

p태그의 p는 paragraph의 약자로 뜻 그대로 문단을 나타낼 때 쓰인다.

 

p태그는 기본적으로 block의 성격을 가진 태그로 내부에서 텍스트의 정렬을 위해서는

text-align 속성을 사용해 텍스트 정렬을 한다.

 

1. p태그 사용의 유의점

p태그는 기본적으로 margin의 상하값에 간격이 들어가있다.

그렇기 때문에 css를 초기화하거나 p태그에 margin:0 값을 넣어주지 않았다면

원하는 화면을 출력하지 못할 것이다.

 

그리고 p태그는 블록 요소의 태그이긴해도

p태그 안에(자식요소로) 다른 블록 요소가 들어가지 못한다.

 

그리고 무엇보다 p태그 안에 p태그는 삽입이 불가능하다.

 

<p>
   <h2>제목</h2>  <!-- x -->
   테스트를 위한 텍스트
</p>

<p>
   p태그 안에 또 p태그를..?
   <p>가능할까..??</p>   <!-- x -->
</p>

 

2. p태그의 사용

어떤 경우에는 p태그를 사용해 텍스트를 넣고

또 어떤 경우엔 span태그나 div를 사용해서 텍스트를 넣고

각자의 코딩 방식에 따라 p태그를 사용하는 방식이 조금씩의 차이는 있겠지만

 

p태그는 말 그대로 문단을 위해 사용하는 태그이므로

길이가 긴 문장이나 특정 영역에 대한 설명글 등 문단의 성격을 가진

텍스트를 사용할 때 필요에 맞춰 사용하는 것이 좋다.

반응형
반응형

html태그 중 리스트 혹은 목록을 나타내는 태그가 있다.

ol태그와 ul태그가 그 태그이다. 

 

이 태그들을 상황에 맞게 알맞게 사용하는 것이 중요하다.

 

ol과 ul 각 태그는 반드시 li태그와 함께 사용이 된다.

ol, ul태그의 안에는 li태그 외에는 다른 태그는 바로 자식 선택자로 위치할 수 없다.

<ul>
  <li>순서가 의미가 없다.</li>  (o)
  <div></div>  (x)
  <li>
     <div></div>  (o)
  </li>
</ul>

div를 사용하고 싶다면 li태그를 먼저 만든 후에 그 안쪽으로 div태그를 작성해야한다.

 

1. ol 태그 (순서 있는 목록)

ol태그는 1번 2번 등 순서가 있는 목록을 만들 때 사용된다.

 

예를 들면, 1등부터 5등까지 순서를 나열하는 경우에서 사용이 된다.

<h1>체육대회 순위</h1>
<ol>
   <li>철수</li>
   <li>새미</li>
   <li>철수세미</li>
   <li>영수</li>
   <li>박수</li>
</ol>

위의 소스와 같이 출력을 하면 아래와 같이 노출이 된다.

ol태그 안 li태그에 1, 2, ~ 5번 등 숫자를 따로 표시하지 않아도

브라우저는 ol태그의 사용에 맞춰 스스로 순서를 부여한다.

 

2. ul 태그 (순서 없는 목록)

ul태그는 앞서 소개한 ol태그와는 다르게

순서가 정해져있지 않은 목록을 나타낼 때 쓰인다.


단순한 리스트의 나열이나 상품의 나열 등에서 쓰인다.

<h1>운동회 식사</h1>
<ul>
   <li>오리훈제</li>
   <li>쇠고기 무국</li>
   <li>김치</li>
   <li>치즈 등갈비</li>
   <li>양장피</li>
</ul>

위의 소스와 같이 출력을 하면 아래와 같이 노출이 된다.

왼편에 숫자가 아닌 원형의 점이 찍히면서

따로 순서에 의미가 없는 일반적인 리스트가 노출된다.

 

위와 같이 ol과 ul은 각각의 의미에 맞게 사용을 해야한다.

 

3. 리스트 기본 스타일 제거

ol은 왼편에 숫자, ul은 왼편에 점을 제거하기 위해선

css에 list-style 속성으로 조정을 해야한다.

<style>
   ol, ul{list-style:none;}
</style>
<body>
   <h1>체육대회 순위</h1>
   <ol>
      <li>철수</li>
      <li>새미</li>
      <li>철수세미</li>
      <li>영수</li>
      <li>박수</li>
   </ol>
   <h1>운동회 식사</h1>
   <ul>
      <li>오리훈제</li>
      <li>쇠고기 무국</li>
      <li>김치</li>
      <li>치즈 등갈비</li>
      <li>양장피</li>
   </ul>
</body>

위와 같이 li태그에 기본적으로 들어가던 숫자나 동그란 점이 사라질 것이다.

 

 

반응형

'Frontend > HTML' 카테고리의 다른 글

[html 태그] dl, dt, dd 태그 (정의형 목록)  (0) 2020.03.28
[html 태그] p태그  (0) 2020.03.25
[html 태그] a태그  (0) 2020.03.06
Meta tag (메타 태그)  (0) 2020.02.13
HTML5 - Content Model (콘텐츠 모델)  (0) 2020.02.12
반응형

문서간의 이동을 자유롭게 하는 대표적인 태그가 바로 a태그이다.

 

href="" 속성을 이용해서 링크를 걸고

해당 링크로 페이지를 이동 혹은 새 창으로 페이지를 띄운다.

 

html5 이전에 즉, 컨텐츠 모델 적용 전에

a태그는 단순히 inline 태그였기 때문에

 

a태그 안에 div나 다른 영역들을 넣는 것은 표준에 어긋나는 일이었다.

 

그렇기 때문에 a태그로 감싸는 영역을 만들 수가 없었다.

<style>
   .item{position:relative; width:150px; height:50px;}
   .item a{position:absolute; top:0; left:0; right:0; bottom:0;}
</style>
<body>
   <div class="item">
      <div class="thmb">
         <img src="썸네일.jpg" alt="썸네일">
      </div>
      <div class="txt">
         <p>썸네일에 대한 설명글</p>
      </div>
      <!-- .item 영역에 링크 걸기 -->
      <a href="#">링크</a>
   </div>
</body>

위의 코드 처럼 특정 영역 안에 a태그를 넣고

그 a태그를 absolute로 띄워서 영역을 덮어 주었다.

 

하지만 HTML5에 들어서 태그들이 단순히 인라인, 블록으로 나누는게 아니라

태그의 성격과 특성에 따라 나누게 되었고

 

a태그가 flow content(플로우 콘텐츠)를 품을 수 있게 되었다.

 

그래서 a태그는 단순한 인라인 속성만 담을 수 있는 태그가 아닌

블록 요소까지도 담을 수 있게 되었다.

 

2020/02/12 - [HTML] - HTML5 - Content Model (콘텐츠 모델)

 

HTML5 - Content Model (콘텐츠 모델)

HTML5 이전에는 HTML 태그들을 inline (인라인), block (블록) 이 두 가지의 요소로만 구분을 지었었다. 2020/02/11 - [HTML] - HTML inline(인라인) vs block(블록) 요소 하지만 HTML5에 들어서면서 단순히 인라..

abcdqbbq.tistory.com

 

※ a태그의 속성

속성 설명
href

연결 할 주소를 지정한다. (절대주소, 상대주소, id값 등...)

ex) <a href="https://www.google.com">   -   절대주소

     <a href="/menu/index.html">   -   상대주소

     <a href="#header">   -   아이디값이 header인 곳으로 이동

target

연결 된 주소로 이동할 때 어떤 방법으로 열 지를 지정한다.

- _self : 현재 창에서 링크를 연다 (기본값)

- _blank : 새 창에서 링크를 연다

- _parent : 부모 페이지에서 링크를 연다 (iframe 등의 환경에서 사용)

- _top : 최상위 부모 페이지에서 링크를 연다 (iframe 등의 환경에서 사용)

title

태그에 대한 설명을 표시한다. (마우스 오버시 title에 적힌 텍스트 노출)

ex) <a href="https://www.google.com" title="구글 홈페이지">

 

 

 

 

반응형

'Frontend > HTML' 카테고리의 다른 글

[html 태그] p태그  (0) 2020.03.25
[html 태그] ol, ul 태그 (목록 태그)  (0) 2020.03.24
Meta tag (메타 태그)  (0) 2020.02.13
HTML5 - Content Model (콘텐츠 모델)  (0) 2020.02.12
HTML inline(인라인) vs block(블록) 요소  (0) 2020.02.11
반응형

Meta (메타) 태그에 사용할 수 있는 속성은 4가지가 있다.

 

- http-equiv

웹 브라우저가 서버에 명령을 내리는 속성이다.

해당 속성이 명시되어 있으면 반드시 content 속성도 함께 명시되어야한다.

 

● http-equiv 속성의 주요 속성 값

속성 값 설명
content-language

문서 컨텐츠들의 언어를 명시한다.

*해당 속성값은 적절하지 않은 속성값으로, <html> 속성의 lang 속성으로 대체해서 사용해야한다.

 

ex) <html lang="ko">

content-type 문서의 인코딩 선언을 명시한다.
default-style

우선 적용할 스타일을 명시한다. 

해당 속성 값을 적용하려면 우선시 하려는 스타일 값(<link>)의 title값과 해당 메타 태그의 content="" 의 값을 일치 시켜야한다.

 

ex) <meta http-equiv="default-style" content="important style">

     <link rel="stylesheet" href="..." title="important style">

refresh

시간을 지정해 해당 문서 자체를 새로고침 하거나 다른 페이지로 새로고침을 한다.

content="" 안의 숫자는 초 단위를 나타낸다.

 

ex)

- 문서 자체 새로고침 (5분 마다) : <meta http-equiv="refresh" content="300">

- 다른 페이지로 새로고침 : <meta http-equiv="refresh" content="300; url=index2.html">

x-ua-compatible

익스플로어(ie)로 문서를 접근시 어떤 버전으로 렌더링을 할지 정하는 호환성을 위해 사용된다.

content="" 안에 ie=8 라고 입력하면 ie8 버전의 렌더링 방식으로 문서가 열린다.

보통은 ie=edge를 사용한다. (최신버전)

 

ex) <meta http-equiv="X-UA-Compatible" content="IE=Edge">

 

- charset

문자 인코딩을 선언하는 속성이다. (문자 인코딩은 대소문자 구문없이 사용한다.)

 

HTML4.01 : <meta http-equiv="content-type" content="text/html; charset=문자인코딩">

HTML5    : <meta charset="문자인코딩">

문자 인코딩의 경우 'euc-kr', 'iso-8859' 등의 여러 코드가 있지만

 

기본적인 인코딩 방식은 'utf-8'을 사용한다.

 

- content

meta 태그의 내용을 나타내는 속성이다.

http-equiv 속성과 name 속성과 함께 사용된다.

 

- name

meta 태그가 어떤 정보나 내용을 담고있는지 나타내는 속성이다. (메타 데이터의 이름을 명시)

반드시 content 속성과 함께 명시되어야 한다.

 

● name 속성의 주요 속성 값

속성 값 설명
application-name

웹 페이지가 나타내는 웹 어플리케이션의 이름을 나타낸다.

(모바일에서 '홈 화면에 추가' 기능을 사용할 때의 저장되는 이름을 정의한다.)

 

ex) <meta name="application-name" content="app name">

author

문서의 작성자를 나타낸다.

(필수 항목은 아니며 검색 엔진 최적화(SEO)와 관련은 없다.)

★description

문서에 대한 설명을 나타낸다.

(검색 엔진 최적화(SEO)에는 큰 영향을 주지 않는다는 의견이 있지만

구글에서 검색을 했을 때, 검색 결과에 표시되는 설명 영역이 해당 태그의 content="" 값이다.

그렇기 때문에 페이지 설명을 위해서라도 올바른 내용을 작성하는 것은 중요하다.)

generator 문서를 작성할 때 사용한 도구(소프트웨어)를 나타낸다.
keywords

문서와 관련된 키워드를 나타낸다.

(예전엔 키워드 값을 검색 엔진에서 많이 고려를 했으나 최근에는 키워드 값을 고려하지 않는다.)

viewport

문서를 화면에 어떻게 표시할 지에 대해 정의한다.

모바일이나 태블릿 브라우저에서 화면의 크기를 조정하거나 확대율을 조정할 수 있다.

 

ex) <meta name="viewport" content="width=device-width, initial-scale=1.0">

 

 

 

★ description 속성 값의 content="" 값이 위의 표시된 영역처럼 구글 검색 결과에 노출된다

 

 


참고 사이트

- https://html.spec.whatwg.org/multipage/semantics.html#the-meta-element

- https://myseolabo.com/seo/meta-tag/

 

 

 

 

반응형

'Frontend > HTML' 카테고리의 다른 글

[html 태그] ol, ul 태그 (목록 태그)  (0) 2020.03.24
[html 태그] a태그  (0) 2020.03.06
HTML5 - Content Model (콘텐츠 모델)  (0) 2020.02.12
HTML inline(인라인) vs block(블록) 요소  (0) 2020.02.11
HTML 5이란?  (0) 2020.02.10
반응형

HTML5 이전에는 HTML 태그들을 inline (인라인), block (블록) 이 두 가지의 요소로만

구분을 지었었다. 

 

2020/02/11 - [HTML] - HTML inline(인라인) vs block(블록) 요소

 

하지만 HTML5에 들어서면서 단순히 인라인 vs 블록의 구분이 아닌

태그의 특성에 따라 Metadata, Flow, Sectioning, Heading, Phrasing, Embedded, Interactive로 

총 7개의 카테고리로 분류한다.

 

 

참고 : https://www.w3.org/TR/html53/dom.html

 

* 위의 이미지 처럼 Interative 영역과 Phrasing 영역 처럼 겹치는 영역들은 특정 태그가 Interative의 특성과 Phrasing의 특성을 두루 갖춘 태그이다.

 

1. Metadata Content (메타 데이터 컨텐츠)

메타 데이터 컨텐츠는 문서의 표현이나 동작을 설정하거나, 다른 문서와의 관계를 설정하고

다른 문서에 정보를 전달하는 컨텐츠이다.

 

base, command, link, meta, noscript, script, style, title

2. Flow Content (플로우 컨텐츠)

플로우 컨텐츠는 문서나 Application의 본문 (body태그) 안에서 사용되는 컨텐츠이다.

 

a, abbr, address, article, aside, audio, b, bdi, bdo, blockquote, br, button, canvas,
cite, code, command, datalist, del, details, dfn, div, dl, em, embed,
fieldset, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, hr, i,
iframe, img, input, ins, kbd, keygen,
label, map, mark, math, menu, meter, nav, noscript, object, ol, output, p, pre,
progress, q, ruby, s, samp, script, section, select, small, span, strong,
sub, sup, svg, table, textarea, time, ul, var, video, wbr, text

- area (map 요소의 자식 요소인 경우)
- style (scoped 속성이 있으면)

3. Sectioning Content (구획 컨텐츠)

Headings Content와 footer (<footer>)를 정의하는 컨텐츠이다.

 

article, aside, nav, section

4. Heading Content (제목 컨텐츠)

Sectioning Content의 header를 정의하는 컨텐츠이다.

 

h1, h2, h3, h4, h5, h6

5. Phrasing Content (구문 컨텐츠)

텍스트와 텍스트가 포함된 마크업을 정의하는 컨텐츠이다.

 

abbr, audio, b, bdi, bdo, br, button, canvas, cite, code, command, datalist,
dfn, em, embed, i, iframe, img, input,
kbd, keygen, label, mark, math, meter, noscript, object, output, progress, q, ruby, s, samp, 
script, select, small, span, strong, sub, sup, svg, textarea, time,
var, video, wbr, text

- a (구문만을 포함하는 경우)
- area (map 요소의 자식요소인 경우)
- del (구문만을 포함하는 경우)
- ins (구문만을 포함하는 경우)
- map (프레이징 콘텐츠만을 포함하는 경우)

 

6. Embedded Content (임베디드 컨텐츠)

다른 리소스나 컨텐츠를 문서에 삽입하는 컨텐츠이다.

 

audio, canvas, embed, iframe, img, math, object, svg, video

 

7. Interactive Content (인터렉티브 컨텐츠)

사용자와의 상호작용을 위해 사용되는 컨텐츠이다.

 

a, button, details, embed, iframe, select, textarea, keygen, label

- audio (controls 속성이 있으면)
- img (usemap 속성이 있으면)
- input (type 속성이 hidden 상태가 아니면)
- menu (type 속성이 toolbar 상태면)
- object (usemap 속성이 있으면)
- video (controls 속성이 있으면)

 

 

 

반응형

'Frontend > HTML' 카테고리의 다른 글

[html 태그] a태그  (0) 2020.03.06
Meta tag (메타 태그)  (0) 2020.02.13
HTML inline(인라인) vs block(블록) 요소  (0) 2020.02.11
HTML 5이란?  (0) 2020.02.10
Doctype 이란?  (0) 2020.02.07
반응형

HTML의 태그 요소는 HTML5 이전에 inline(인라인) 요소와 block(블록) 요소로 구분 되어왔다.

 

HTML5에 들어서는 태그들을 단순히 인라인, 블록으로 구분하는 것이 아닌

Contents Model(컨텐츠 모델)로 각 태그별 사용되는 역할에 따라 분류를 한다.

 

Contents Model(컨텐츠 모델)에 대해 알아보기 전 인라인, 블록 요소들의 구분은

어떻게 지을 수 있는지에 대해 알아보려고 한다.

 

 

1. 인라인 요소 (inline element)

- 인라인 요소는 다른 인라인 요소를 포함할 수 있다

<span>
	Hello <storng>World</strong>   (o)
</span>

- 인라인 요소는 다른 블록 요소를 포함할 수 없다.

<span>
	Hellow <p>World</p>   (x)
</span>

- 인라인 요소는 너비나 높이 값을 줄 수 없다. (width, height)

- 대표적인 태그로는 <span>, <a>, <strong>, <em> 태그 등이 있다.

- 그 외의 인라인 태그 : abbr, acronym, b, bdo, big, br, button, cite, code, dfn, i, img, input, kbd, label, map, object, q, samp, small, script, select, span, sub, sup, textarea, tt, var

 

2. 블록 요소 (block element)

- 블록 요소는 인라인 요소와 다른 일부 블록요소를 포함할 수 있다.

<div>
   <p>Hello</p>
   <strong>World</strong>
</div>

- 예외의 상황으로 <p> 태그에는 또 다른 <p>태그 뿐만 아니라 다른 블록 요소들이 들어갈 수 없다.

<p>
   <div>Hello</div>   (x)
   <strong>World</strong>   (o)
</p>

- 블록 요소는 너비나 높이 값을 줄 수 있다.

- 대표적인 태그로는 <div>, <p>, <h1~h6>, <ul> 등의 태그가 있다.

- 그 외의 블록 태그 : address, article, aside, audio, blockquote, canvas, dt, dd, dl, fieldset, figcaption, figure, footer, form, header, hgroup, hr, noscript, ol, li, output, pre, section, table, video

 

 

3. 인라인 요소와 블록 요소가 차지하는 영역

인라인 요소와 블록 요소의 영역이 어떻게 잡히는지에 대한 이미지

<div>
   <span>inline</span>
   <span>inline</span>
   <span>inline</span>
</div>

<div>
   <div>block</div>
   <div>block</div>
   <div>block</div>
</div>

위의 이미지 및 소스와 같이 인라인 요소는 태그별로 영역이 나란히 나열된다.

 

그 반대로 블록 요소의 경우 각 요소별로 너비를 100%씩 차지하여 아래로 떨어지면서 나열되게 된다.

 

 

반응형

'Frontend > HTML' 카테고리의 다른 글

[html 태그] a태그  (0) 2020.03.06
Meta tag (메타 태그)  (0) 2020.02.13
HTML5 - Content Model (콘텐츠 모델)  (0) 2020.02.12
HTML 5이란?  (0) 2020.02.10
Doctype 이란?  (0) 2020.02.07
반응형

HTML5는 HTML4.01의 상위 버전으로 이전에 비해 상당히 간결하고 명확해졌다.

 

2014년 10월 28일, 차세대 웹 표준으로 확정이 되었고 단순 텍스트, 링크의 표시가 아닌

오디오, 비디오 등의 멀티미디어와 여러가지 폭 넓은 처리를 할 수 있도록 표현한다. 

(ActiveX 등의 별도의 플러그인을 이용하지 않고 HTML5 태그만으로 자체적으로 처리할 수 있다.)

 

인터넷 익스플로러의 경우 9부터 일부 태그를 지원하고 10에서 거의 대부분의 태그를 지원한다.

ie8 이하를 지원하려면 html5shiv.js 라는 JavaScript 를 이용하면 된다.

 

 

1. HTML5에서 달라진 점

HTML5에서는 이전과는 다르게 시맨틱 웹을 중요시한다.

시맨틱 웹을 사용하기 위해 HTML5에선 시맨틱 태그를 사용한다.

 

 

1-1. 레이아웃 태그의 추가

단순히 레이아웃 구조를 짤 때 <div>로만 겹겹이 쌓는 것이 아니라

용도와 상황에 따라 레이아웃 관련된 태그를 사용하여 페이지를 조금 더 시맨틱하게 (의미있게) 작성할 수 있다.

 

아래의 코드처럼 레이아웃 구조를 div만 이용해서 처리를 하게되면

관련 영역에 대한 의미를 확실하게 알 수 없을 뿐만 아니라

소스가 복잡해질 경우 소스를 확인하는데에 어려움이 있을 것이다.

 

<div id="header">Header 영역</div>

<div id="section">
   <div id="article">독립적 사용 가능한 문서</div>
   <div id="main">메인 컨텐츠</div>
</div>

<div id="aside">
   <div id="nav">네비게이션 영역</div>
</div>

<div id="footer">Footer 영역</div>    
    

 

하지만 아래의 소스처럼 html5의 레이아웃 태그를 이용하게 된다면,

조금 더 깔끔한 태그 작성과 태그의 의미에 맞게 레이아웃을 작성하게 되므로

스크린 리더에도 각 영역별로 의미를 확실히 명시해줄 수 있고 각 영역 별로 의미를 부여할 수 있다.

 

<header>Header 영역</header>

<section>
   <article>독립적 사용 가능한 문서</article>
   <main>메인 컨텐츠</main>
</section>

<aside>
   <nav>네비게이션 영역</nav>
</aside>

<footer>Footer 영역</footer>

* 레이아웃 태그 표

태그

설명

<header>

일반적으로 페이지 전체 영역의 가장 윗부분, 제목 영역에 많이 위치하게 된다.

그리고 <section>, <article>, <aside> 영역 안의 헤더 영역 표시를 위해서도 사용된다.

<nav>

네비게이션을 표시하는 태그이다.

주로 <nav> 태그 안에 <ul><li>를 사용하여 네비게이션 메뉴를 작성한다.

<section> 페이지의 각 영역의 구분을 위해 사용한다.
<article>

페이지 내용을 담는 태그이다.

sns 관련 영역, 뉴스 소식 등 독립적으로 따로 떼어가서 어디서든 사용할 수 있는

내용을 담는다.

<main>

문서의 주된 내용을 담는 태그이다.

문서에서 두 개 이상 노출되면 안되는 태그이므로 사용하는 영역이 아닌 <main> 태그는

 

<aside> 본문의 주요 내용 외의 사이드 영역이나 광고 영역 등의 기타 내용을 담는다.
<footer>

일반적으로 페이지 전체 영역의 가장 아랫부분에 위치하게 된다.

<header>와 마찬가지로 <section>, <article>, <aside> 영역 안에도 위치할 수 있다.

 

 

1-2. 기타 추가 된 태그

태그 설명
<video> 영상 파일을 재생할 수 있는 태그. 별다른 플러그인 없이 자체 재생이 가능하다.
<audio> 오디오 파일을 재생할 수 있는 태그. <video>태그와 마찬가지로 자체 기능을 제공한다.
<canvas> 동적인 비트맵 그래픽을 활용하는 태그, 스크립트를 이용해 표현한다.
<embed> 플러그인 컨텐츠를 나타내는 태그.
<output> 스크립트를 통해 계산된 결과값을 나타내는 태그.
<datalist> <input> 요소에 대해 미리 정의된 옵션 리스트를 명시하는 태그.
<mark> 특정 영역을 형광펜으로 마킹하는 태그.
<figure> 그림, 도표, 다이어그램 등의 이해를 돕기 위한 내용을 담는 태그.
<figcaption> <figure> 태그 안에 사용하며 <figure> 태그 안에 있는 내용을 설명한다.
<time> 날짜와 시간을 나타내는 태그.
<meter> 측정치를 나타내는 태그.
<progress> 진행 상황을 나타내는 태그.
<input>의 type

<input type=""> 에 추가된 요소

- search

- tel

- url

- email

- datatime

- date

- month

- week

- time

- datatime-local

- number

- range

- color

 

1-3. 삭제된 기존 태그

css 적용할 수 있는 태그는 최대한 줄이고 css로 적용하여 스타일을 주었다.

삭제된 태그 설명
<acronym> <abbr> 태그로 대체
<nobr> CSS로 적용 (white-space : nowrap)
<marquee> 스크립트나 CSS로 적용
<blink> 스크립트나 CSS로 적용
<applet> <object> 태그로 대체
<basefont> CSS로 적용
<big> CSS로 적용
<center> CSS로 적용
<font> CSS로 적용
<strike> CSS로 적용
<tt> CSS로 적용
<dir> <ul> 태그로 대체
<frame> 삭제
<frameset> 삭제
<noframes> 삭제

 

반응형

'Frontend > HTML' 카테고리의 다른 글

[html 태그] a태그  (0) 2020.03.06
Meta tag (메타 태그)  (0) 2020.02.13
HTML5 - Content Model (콘텐츠 모델)  (0) 2020.02.12
HTML inline(인라인) vs block(블록) 요소  (0) 2020.02.11
Doctype 이란?  (0) 2020.02.07
반응형
"문서 형식 선언"(Document Type Declaration) 또는 DOCTYPE이란 어떤 SGML이나 XML 기반 문서 내에 그 문서가 특정 문서 형식 정의(DTD)를 따름을 지정하는 것이다. 본래 DTD에 기반한 SGML 도구를 이용해 문서 해석 가능성과 유효성을 검사하기 위한 목적으로 문서 내에 삽입되었다.
*SGML (Standard GeneralStandard Generalized Markup Language)

 : 다른 마크업 언어를 기술하는 또 다른 마크업 언어
*XML (Extensible Markup Language)

: W3C에서 개발한 마크업 언어를 만드는데 사용되는 다목적 마크업 언어

 

라고 사전적 의미를 찾아볼 수 있다.... 

 

무슨 얘기인가 할 수도 있지만, 쉽게 말하자면 

 

내가 작성하려는 HTML 문서가 어떤 문서 형식을 갖고 있는 지 선언해주는 것을 말한다.

 

 

웹 브라우저에서는 문서 형식 선언이 없으면 *쿼크모드로 렌더링을 해서 각 브라우저마다 다른 형태의 결과물을 보여주게 되는데 이것을 방지하기 위해 문서 형식 선언을 하고 그로인해 HTML 문서를 표준모드로 렌더링 할 수 있게된다.

 

*쿼크모드 

: 오래된 웹 페이지의 하위 호환성 유지를 위해 사용되며, W3C나 IETF의 표준을 엄격하게 준수하지 않는다. 같은 코드라도 웹 브라우저마다 다르게 해석해서 다른 결과물을 보여준다.

 

- Doctype 무선언 -> 쿼크모드로 렌더링 -> 브라우저마다 다른 결과물 출력

- Doctype 선언    -> 표준모드로 렌더링 -> 브라우저 별로 같은 레이아웃으로 결과물 출력

 

 

1. HTML 4.01 문서 형식 선언 (Doctype)

HTML 4.01의 문서 형식은 Strict, Transitional, Frameset으로 나뉘며, 선언도 마찬가지이다. HTML 4.01 Strict는 표현 효과 위주의 마크업 태크들 (<b>, <i> 등)의 사용을 금지한다.

 

- Strict (엄격한 타입) : <center>, <font> 등의 14가지 태그를 사용하지 않는다.

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

 

 

- Transitional (유연한 타입) : HTML 4.01 Strict에서 폐기된 몇 가지 태그를 허용한다.

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 

 

- Frameset (프레임셋) : 프레임 구조 지원

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

 

2. XHTML 1.0

XHTML 1.0도 HTML 4.01과 마찬가지로 Strict, Transitional, Frameset 세 가지로 구분하여 선언한다.

 

- Strict

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 

 

- Transitional 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

 

- Frameset

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

 

3. XHTML 1.1

XHTML 1.0 Strict와 동일하게 엄격한 문법을 갖고있다.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

 

4. HTML5

HTML5의 경우 문서 형식 선언(DOCTYPE)이  불필요하지만 웹 브라우저들의 표준 모드 활성화를 위해 최소한의 형태로 유지되어 사용된다.

 

<!DOCTYPE html>

 

반응형

'Frontend > HTML' 카테고리의 다른 글

[html 태그] a태그  (0) 2020.03.06
Meta tag (메타 태그)  (0) 2020.02.13
HTML5 - Content Model (콘텐츠 모델)  (0) 2020.02.12
HTML inline(인라인) vs block(블록) 요소  (0) 2020.02.11
HTML 5이란?  (0) 2020.02.10

+ Recent posts