w head 태그에는 웹페이지에 대한 정보를 담는다. 페이지 인코딩 방식이나 css 파일 링크, 페이지의 제목 등 다양한 데이터를 포함한다.
<meta>
meta 태그는 웹페이지에 대한 메타데이터를 나타내는 태그이다. 메타데이터란 데이터를 설명하는 데이터이다. 문서 작성자나 문서 요약과 같은 정보를 담고 있다.
1
<metacharset="UTF-8" />
주로 인코딩 방식을 나타내기 위해 사용된다.
<link>
MDN-link link는 외부 리소스를 불러올 때 사용한다. 주로 stylesheet를 연결할 때 가장 많이 사용하지만, 다른 속성을 이용해 그 외의 resource들도 불러 올 수 있다.
1
<linkrel="stylesheet"href="./css/style.css" />
<title>
웹 페이지의 제목을 설정하는 요소이다.
1
<title>테스트 페이지</title>
<body> 태그 구성 요소 - block
<header>
사이트 상단에 위치하는 요소들의 컨테이너로 주로 사용한다. 다른 태그의 하위에 들어갈 수 없다. 상단에 위치하는 네비게이션 같은 요소가 주로 들어가게 된다.
<footer>
사이드 하단에 위치하는 페이지 제작자의 정보나 연락처 또는 회사 로고등의 데이터가 주로 들어간다.
<h1>
h1부터 h6 까지 다른 글자 크기를 가지며 컨텐츠의 제목을 나타낼 때 사용한다. 주의할 점은 MDN의 레퍼런스를 따르면 폰트의 구조를 줄이기 위해 낮은 단계를 사용하지 말라고 명시되어있다. HTML은 구조를 나타내기 위한 언어이기 때문에 실제로 표현되는 부분은 CSS로 조정하는 것이 본연의 목적에도 맞는 구현 방법이라고 할 수 있다.
또한 각각의 우선도에 맞게 사용하기를 권장하고 있는데, 예를들면 h1 태그를 남발하기 보다는 이는 전체 문서의 대제목으로 하나를 지정하고, 소제목들은 h2 태그를 사용해서 나타내는 것을 말한다.
<main>
<body>의 주요 콘텐츠를 나타낸다. 이 태그는 문서 당 고유하게 하나만 사용해야 한다. IE는 지원하지 않는다. block 요소이다.
<article>
독립적으로 구분되거나, 재사용이 가능한 영역을 설정한다. 매거진, 기사, 블로그 포스팅이 여기에 속할 수 있다. 일반적으로 <h1>-<h6> 가 하나정도 포함된다.
위 그림에서 볼 수 있듯 파란색으로 묶은 부분은 독립적으로 다른 곳에서도 같은 형식으로 사용 될 수 있다. 이런 성격을 가지는 내용의 경우 <article>의 사용을 고려해보는 것이 좋다.
<section>
block 요소이다. 문서에서 일반적인 영역을 설정한다. 어떠한 구역을 나눈다는 역할적인 측면에서 <div>와 비슷하지만 <section>의 경우 <h1>-<h6>를 사용해 구역에 이름을 지어 구분한다.
section > article > div 순으로 좀 더 강한 의미를 가지고 있다고 생각하면 된다.
<aside>
웹사이트의 사이드에 나타나는 주로 주요 contents와는 관계 없는 배너 광고나 기타 링크를 나타낸다.
<nav>
block 요소이다. navigation의 약자로 다른 페이지의 링크를 제공하는 영역을 나타낸다. 메뉴나 홈, 목차, 색인 등이 주로 포함된다.
용어와 정의의 쌍(key-value)을 나타낼 때 사용한다. <dl>은 <dt>, <dd> 요소만을 포함한다.
<dfn> 은 용어 하나를 정의할 때 사용하는 태그이다. definition의 약어이다.
하지만 <dl>의 경우 스타일링을 하는데 어느정도 제약이 있다. 따라서 이를 대신하여 <li>와 <dfn> 을 사용해 비슷하게 동작 하도록 할 수 있다.
문단 설정 요소
하나의 문단을 설정할 때 사용한다. (paragraph) block 요소이다. 웹페이지에서 다음 문단 즉, 다음 <p>로 넘어갈 수 있는 단축키가 지정되어 있어서 자주 사용된다.
문단의 분리를 위해 사용한다. 빈 태그이며 block 요소이다. 수평선을 만들어 내는데 이 표현적 관점에 맞춰 사용하면 안된다. 주제에 의한 문단의 분리 라는 의미적 관점으로 사용해야 한다. <hr> 태그로 나타나는 수평선을 없애고 싶을 경우 css 에서 속성을 변경하면 된다.
1 2 3
hr { border: none; }
서식이 미리 지정된 텍스트를 설정한다. 텍스트의 공백과 줄바꿈을 유지하여 표시할 수 있다. 기본적으로 Monospace 글꼴 계열로 표시된다. Monospace 글꼴이란 글자 간 간격이 모두 같아 가독성이 높은 글꼴계열을 말한다.
html 문서에서는 띄어쓰기를 한 번 이상 해도 하나로 인식하여 출력한다. 이를 사용자가 문서에 입력한 그대로 출력할 때 사용하는 태그가 <pre>태그이다.
datetime 속성을 사용해 시간을 표현할 수 있다. datetime 속성은 요소의 시간 또는 날짜 값을 필요로 한다. 지정할 수 있는 날짜 속성은 MDN을 참고한다.
<span>
<div>태그와 유사하다. inline 요소로 본질적으로 아무것도 나타내지 않는 영역을 설정한다. 텍스트 요소들을 다루는데 특화되어있다.
줄바꿈을 나타낸다. /는 생략해도 된다.
삭제된 요소를 나타낸다. 텍스트 중간에 가로선이 나타난다. 꼭 삭제되었음을 보여야 하는 경우에만 사용한다.
추가된 요소를 나타낸다. 텍스트에 밑줄이 표시된다.
1 2 3 4 5 6 7
<p>“You're late!”</p> <del> <p>“I apologize for the delay.”</p> </del> <inscite="../howtobeawizard.html"datetime="2018-05"> <p>“A wizard is never late …”</p> </ins>
멀티미디어 요소
이미지를 삽입할 때 사용한다.
오디오 컨텐츠 삽입에 사용한다. src로 파일의 위치를 지정하여 사용한다. autoplay 속성을 추가하면 파일이 준비되는대로 바로 재생된다. controls 속성은 audio 속성의 제어 메뉴를 표시한다.
동영상 컨텐츠를 삽입한다. <audio>와 비슷하다. poster속성으로 썸네일 이미지 url을 지정할 수 있다.
,
이미지나 도표 등의 영역을 지정한다. <figcaption>은 삽입한 이미지의 밑에 표시되는 figure의 캡션 요소이다.
다른 html 페이지를 현재 페이지에 삽입할때 사용한다. youtube등의 동영상을 불러올 때 등에도 다양하게 사용할 수 있다. 중첩된 페이지 컨텍스트를 표시한다.
iframe을 사용할 경우 보안적 이슈가 생길 수 있고 정상적으로 페이지가 출력되지 않는 경우도 있다. sandbox 속성을 사용해 보안 문제를 완화 시킬 수는 있지만 이 속성을 주면 엘리먼트에 자바스크립트 코드가 적용되지 않을 수도 있는 등의 제약이 생길 수도 있으니 주의해야 한다.
canvas
canvas API를 사용해 그래픽이나 애니메이션을 렌더링 한다. (Javascript 30 에서 다루었음)