Semantic은 "의미론적인"이라는 뜻을 가진 단어이다. 즉 semantic Tag란 개발자나 웹브라우저에 명확한 의미를 전달하는 Tag를 뜻한다.
div 태그는 태그 안에 들어간 내용의 의미를 정의하기 위해 class속성의 naming을 이용했다. 즉 class가 없다면 무엇을 의미하는지 직관적으로 알아보기가 힘들다. 하지만 header 태그는 class 속성이 없어도 직관적으로 header를 정의하고 header 부분에 쓰일 정보 라는 것을 알 수있다.
// Non-Semantic Tag
<div class = "header">
<span> 나의 개발 블로그 </span>
</div>
// Semantic Tag
<header>
<h1> 나의 개발 블로그 </h1>
</header>
Semantic Tag를 사용한다고 해서 위의 그림처럼 레이아웃이 만들어 지는 것은 아니다. 레이아웃은 CSS를 통해 만들 수 있다.
Semantic Tag를 사용해 만든 웹을 Semantic Web이라 부른다. 이는 브라우저가 웹사이트를 분석할 때 header, nav, fooder, main과 같이 영역이 구분되어 있는 문서를 본다면 어떤 부분이 중요한 영역인지 그리고 중요한 정보인지 쉽게 구분 할 수 있다. 때문에 이러한 웹사이트는 검색엔진에서 검색 결과의 상위에 노출 되게 된다. 즉 브라우저가 개발자가 생각하는 중요하고 가치있는 정보가 무엇인지를 쉽게 구별 할 수 있게 된다.
이는 naming하기가 쉽기 때문에 Tag를 종류별로 정리하기가 쉽다.
수많은 HTML Tag들이 존재하는데 이들을 크게 2종류로 구분이 가능하다.
<header> <section> <footer> <article>
<nav> <div> <aside> <span> <main> <form>...등
<a> <button> <input> <label>
<img> <video> <audio> <map> <canvas> <table>...등
HTML 뿐만아니라 CSS에서도 굉장히 중요한 개념이다.
block 형태를 가지는 Tag들은 브라우저에 노출 될 때 한줄에 하나씩만 놓이게 된다.
반대로, inline 형태를 가지는 Tag들은 공간이 허용하는 한 Tag 옆에 또 다른 Tag가 놓일 수 있다.
a 태그의 href 나 target, 그리고 img 태그의 src 와 같이 어떠한 기능을 담당해주는 것들을 atrribute (속성)이라고 부른다. 태그마다 가지는 속성은 다르므로 태그를 검색할때 항상 속성도 같이 검색하여 쓰는 것이 중요하다.
<a href="https://www.google.com/" target="_blank">Here</a>
<img src="123.jpg" />
HTML이 뼈대를 담당한다면 CSS는 그 위에 살을 붙여주는 역할을 한다.
디자인적인 요소는 모두 CSS로 처리한다고 생각하면 된다.
웹에 보여지는 디자인은 다음과 같은 우선순위를 가진다.
* {
color: green;
}
span {
color: red;
}
#loginForm {
color: blue;
}
.className {
backgroun-color: yellow;
}
botten:hover {
color: red;
font-size : 20px;
}
a[href] {
backgroun-color: green;
}
HTML 태그들은 기본적으로 inline이나 block의 속성을 가지지만 CSS를 통해 속성을 바꿀 수 있다.
세가지 형태로 나뉘며 HTML에서 그림으로 설명하였지만 너무 중요하기 떄문에 한번 더 그림을 첨부한다.
원하는 방향으로 item을 이동시키고 싶을때 사용한다. Default 값은 static이기 때문에 position을 바꾸지 않으면 이동하지 않는다.
ex) left : 20px, top : 20px 만큼 이동하려 한다면
Container lever에 적용할 수 있는 속성값과 각각의 Item level에서 적용 할 수 있는 속성값들이 존재.
이것을 구분하여 사용한다면 보다 쉽게 사용 할 수 있다.
속성값들을 알아보기 전에 main-axis와 cross-axis를 구별해 보자
중심축을 이해하는 것은 justify-content 와 align-items를 사용할 때 굉장히 중요하다.
Flexbox의 경우 그림으로 이해하는게 굉장히 중요하다. 여기 써놓은 글들은 내가 이해한 내용을 바탕으로 적어논 것이기 때문에 햇갈리면 항상 그림을 찾아서 이해하도록 하자.
Flexbox를 참고 할만한 site.
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Flexbox를 이해하기 위한 간단한 게임
https://flexboxfroggy.com/