태그는 2가지 분류로 나눌수 있음
태그의 정의
<p class="editor-note">my cat is very grumpy</p>
,
이것을 태그라고 한다My cat is very grumpy
이것을 모두 합쳐 엘레멘트 또는 노드라고 한다BOX란, 웹사이트의 구역이 나눠지는 Tag들을 가리키는 말
웹 사이트를 구성할 때
절대로 div
만 사용해 웹사이트를 만드는것은 좋지 않음
에를들어 main
에서도 디자인에 따라
section
을 통해 그룹을 나눌 수 있음
section
안에서는 article
을 이용해
여러가지 Item을 이용해 재사용 가능한 구성 요소를 모아둔 것
<header>
이름에서 나타나는 느낌과 달리
꼭 페이지의 처음에 있을 필요는 없음
[예시]
<header>
<h1>Main Page Title</h1>
<img src="mdn-logo-sm.png" alt="MDN logo">
</header>
<footer>
이름에서 나타나는 느낌과 달리
꼭 페이지의 끝에 있을 필요는 없음
[예시]
<footer>
Some copyright info or perhaps some author
info for an <article>?
</footer>
<nav>
대부분 <ul>
과 <li>
로 구성되어있는 경우가 많다.
[예시]
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
<aside>
[예시]
<article>
<p>
디즈니 만화영화 <em>인어 공주</em>는
1989년 처음 개봉했습니다.
</p>
<aside>
인어 공주는 첫 개봉 당시 8700만불의 흥행을 기록했습니다.
</aside>
<p>
영화에 대한 정보...
</p>
</article>
<main>
body
의 주요 콘텐츠, 문서의 핵심 주제나 앱의 핵심 기능에mine
요소는 문서의 유일한 내용이어야 함.
사이드바, 탐색 링크, 저작권 정보, 사이트 로고 등
여러 문서에 걸쳐 반복되는 콘텐츠를 포함해선 안됨
[예시]
<!-- other content -->
<main>
<h1>Apples</h1>
<p>The apple is the pomaceous fruit of the apple tree.</p>
<article>
<h2>Red Delicious</h2>
<p>These bright red apples are the most common found in
many supermarkets.</p>
<p>... </p>
<p>... </p>
</article>
<article>
<h2>Granny Smith</h2>
<p>These juicy, green apples make a great filling for
apple pies.</p>
<p>... </p>
<p>... </p>
</article>
</main>
<!-- other content -->
<section>
HTML 문서의 독립적인 구획을 나타내며, 더 적합한 의미를 가진 요소가 없을 때 사용함. 보통 section
은 제목에 사용
각각의 section
을 식별할 수단이 필요.
주로 제목 (h1
~h2
)요소를 section
의
자식으로 포함하는 방법으로 사용
콘텐츠를 따로 구분할 필요가 있다면 article
을 사용
단순한 스타일링이 목적이라면 div
를 사용
논리적인 구획이 목적이라면 section
을 사용
[예시]
<section>
<h2>Heading</h2>
<img>some image</img>
</section>
<article>
문서, 페이지, 앱, 사이트 안에서 독립적으로 구분해 배포하거나
재사용할 수 있는 구획을 나타냄, 게시판과 블로그 글, 매거진이나 뉴스 기사등에 사용
각각의 article
을 식별할 수단이 필요.
주로 제목 (h1
~h2
)요소를 article
의
자식으로 포함하는 방법으로 사용
article
이 중첩되어 있을 때, 안쪽에 있는 요소는
바깥쪽에 있는 요소와 관련된 글을 나타냄
예를들어 블로그 글의 댓글은 글을 나타내는 article
안에 중첩된
article
로 나타낼 수 있음
article
은 작성자의 정보를 address
를 이용해 제공할 수 있음
하지만 중첩된 article
에는 적용되지 않음
article
은 작성 일자와 시간 time
의 datetime속성을 이용해
설명할 수 있음
[예시]
<article class="film_review">
<header>
<h2>Jurassic Park</h2>
</header>
<section class="main_review">
<p>Dinos were great!</p>
</section>
<section class="user_reviews">
<article class="user_review">
<p>Way too scary for me.</p>
<footer>
<p>
Posted on <time datetime="2015-05-16 19:00">May 16</time> by Lisa.
</p>
</footer>
</article>
<article class="user_review">
<p>I agree, dinos are my favorite.</p>
<footer>
<p>
Posted on <time datetime="2015-05-17 19:00">May 17</time> by Tom.
</p>
</footer>
</article>
</section>
<footer>
<p>
Posted on <time datetime="2015-05-15 19:00">May 15</time> by Staff.
</p>
</footer>
</article>
<div>
플로우 콘텐츠를 위한 통용 컨테이너, CSS로 꾸미기 전에는
콘텐츠나 레이아웃에 영향을 주지 않음
aricle
, nav
가 적절하지 않을때 사용
거의 대부분의 상황에 사용 가능함
묶어서 스타일링이 필요할 경우 사용
[예시]
HTML
<div class="shadowbox">
<p>Here's a very interesting note displayed in a
lovely shadowed box.</p>
</div>
CSS
.shadowbox {
width: 15em;
border: 1px solid #333;
box-shadow: 8px 8px 5px #444;
padding: 8px 12px;
background-image: linear-gradient(180deg, #fff, #ddd 40%, #ccc);
}
<span>
div
와 유사하지만 div
는 블록 레벨 요소인 반면
span
은 인라인 요소
(블록 레벨, 인라인은 ITEM에서 자세히 다룸)
[예시]
HTML
```html
<li><span>
<a href="portfolio.html" target="_blank">See my portfolio</a>
</span></li>
```
CSS
```css
li span {
background: gold;
}
```
<form>
<form>
에는 크게 두가지 속성이 존재한다.action
은 어떤 페이지로 데이터를 보낼것인지 지정할 수 있다.method
는 데이터를 전송하는 방법을 정의한다.method
속성으로 데이터를 전송하는 방법으로는 세가지가 존재한다.
post
는 백엔드 서버에 전송하는 방식으로 서버가 없다면 사용할 수 없다.get
은 url을 통해 데이터를 전송한다 때문에 보안에 많이 취약하다.dialog
는 양식이 <dialog>
태그에 위치한 경우 데이터 전송 후 닫힌다.백엔드 서버에 데이터를 전송하는 태그이기 때문에 자주 사용된다.
Item Tag에는 아래 두가지로 나누어 볼수 있다
margin
, padding
, border
가 적용된다width
와 height
가 적용되지 않는다margin
의 경우 좌, 우만 적용된다