
오늘의 학습목표
CSS (Cascading Style Sheets)
사용자 인터페이스(UI; user interface)
사용자 경험(UX; user experience)
CSS문법 구성

id와 calss의 차이점
id : #으로 선택, 한 문서에 단 하나의 요소에만 적용, 특정 요소에 이름을 붙이는 데 사용
class : .으로 선택, 동일한 값을 갖는 요소 많음, 스타일의 분류(classification)에 사용
절대 단위: px, pt 등
상대 단위: %, em, rem, ch, vw, vh 등

[그림] border(테두리)를 기준으로 padding(안쪽 여백)과 margin(바깥 여백)이 있습니다.
이렇게 모든 요소에 box-sizing: border-box를 적용하면, 모든 박스에서 여백과 테두리를 포함한 크기로 계산됩니다. 일반적으로 box-sizing은 HTML 문서 전체에 적용합니다. box-sizing을 일부 요소에만 적용하는 경우, 혼란을 가중시킬 수 있습니다. 앞으로 레이아웃과 관련된 이야기를 할 때는 border-box 계산법을 기준으로 이야기합니다. 박스 크기 측정 기준 두 가지를 항상 기억해 주세요.

웹페이지내의 모든 콘텐츠는 고유의 영역을 가지고 있는데 사각형으로 이루어져 있기 때문에 box라고 부른다.
줄바꿈이 되는 박스(Block), 줄바꿈 없이 옆으로 붙는 박스(inline ,inline-block)
html에도 block 요소가 있었다.
Html의 줄바꿈 요소
block 요소 : <h1>, <p>
inline 요소 : <span>
다양한 요소가 있지만 무작정 외우는 것 보다, 개발하면서 자연스럽게 익히는 것을 권장한다고 한다.
전체 셀렉터
문서의 모든 요소를 선택한다.
*{}
태그 셀렉터
같은 태그명을 갖고 있는 모든 요소를 선택한다.
복수 선택 가능.
h1 {}
div {}
section, h1 {}
ID 셀렉터
#id 로 입력하여 선택한다.
#only {}
class 셀렉터
.class로 입력하여 선택한다.
.widget {}
.center {}
attribute 셀렉터
같은 속성을 가진 요소를 선택한다.
a[href] {}
p[id = "only"] {}
p[class ~= "out"] {}
p[class |= "out"] {}
자식 셀렉터
첫번째로 입력한 요소 바로 아래인 자식 요소를 선택한다.(후손 셀렉터와의 차이점 인지할 것)
header > div {}
(예시)
<header>
<div> <!-- 선택 -->
<p>
<div></div>
</p>
</div>
<div> <!-- 선택 -->
<p>
<div></div>
</p>
</div>
</header>
후손 셀렉터
첫번째로 입력한 요소의 후손을 선택한다.
header div {}
(예시)
<header>
<div> <!-- 선택 -->
<p>
<div> <!-- !!선택!! -->
</div>
</p>
</div>
<div> <!-- 선택 -->
<p>
<div> <!-- !!선택!! -->
</div>
<p>
</div>
<header>
형제 셀렉터
같은 부모 요소공유하면서, 첫번째 입력한 요소 뒤에 오는 두 번째 입력한 요소를 모두 선택한다.
section ~ p { }
(예시)
<header>
<section></section>
<p></p> <!-- 선택 -->
<p></p> <!-- 선택 -->
<p></p> <!-- 선택 -->
</header>
인접 형제 셀렉터
같은 부모 요소를 공유하면서, 첫 번째 입력한 요소 바로 뒤에 오는 두 번째 입력한 요소를 선택한다.
section + p { }
(예시)
<header>
<section></section>
<p></p> <!-- 선택 -->
<p></p>
<p></p>
</header>