절대 단위
: 1pt = 1/72 인치로, 약 0.354146mm이다
: 해상도의 단위
MAC의 경우, 9pt는 9px로 동일하다고 하지만 Window의 경우 9pt는 12px이라고 한다. 그 이유는 해상도 차이가 있기 때문이다.
따라서 pt 가 조금 더 절대적이라고 할 순 있으나 작업 할 때는 px 를 사용할 것을 권장 받았다
상대 단위
상대단위들은 보통 부모태그와 밀접하게 연관이 있다
: 부모 태그의 크기를 기준으로 퍼센트가 적용됨
: 그래서 무조건 부모 태그에 크기 값이 있어야함
: 부모랑 함께 or 화면 크기에 따라 크기 변동이 필요할 때 사용
: 비율을 나타냄
: em 은 부모태그의 폰트 사이즈를 기준으로 비율이 적용
ex) parent 가 10px 이고 1.2em 이라한다면 10 * 1.2 = 12px 가 되는 것
: 1rem = 16px
: 브라우저 마다 크기가 달라지는 단점이 있음
: 보통 폰트 사이즈에 적용
: view-width / view-height
: 1vw는 보이는 영역 너비의 1/100을, 1vh는 보이는 영역 높이의 1/100을 뜻한다
: 보통 가장 바깥에 있는 웹 태그에만 적용한다
: 초기화 하는 단위
* { }
h1 { }
div { }
section, h1 { }
#only { }
a[href] { }
p[id="only"] { }
p[class~="out"] { }
p[class|="out"] { }
section[id^="sect"] { }
div[class$="2"] { }
div[class*="w"] { }
header > p { }
<header>
<p> <!-- 선택됨 -->
<span>
<p></p>
</span>
</p>
<p> <!-- 선택됨 -->
<span>
<p></p>
</span>
</p>
</header>
<header> 요소 바로 아래에 있는 두 개의 <p> 요소는 선택되지만 O
<span> 요소의 자식인 <p> 요소는 선택되지 않는다 X
header p { }
<header>
<p><!-- 선택 -->
<span>
<p><!-- !!선택!! -->
</p>
</span>
</p>
<p><!-- 선택 -->
<span>
<p><!-- !!선택!! -->
</p>
</span>
</p>
</header>
<header> 의 자식 <p> 뿐만 아니라
<header> 의 자식인 <p> + 그 <p> 자식의 <p> 요소까지 모두 선택된다
엄청난 혈연을 자랑한다고 생각하면 된다
: 같은 부모 요소를 공유하면서, 첫 번째 입력한 요소 뒤에 오는 두 번째 입력한 요소를 모두 선택한다
: 같은 단계에 있는 모든 요소들을 선택한다고 생각하면 쉽다
section ~ p { }
<header>
<section></section>
<p></p> <!-- 선택 -->
<p></p> <!-- 선택 -->
<p></p> <!-- 선택 -->
</header>
: 인접 형제 셀렉터는 같은 부모 요소를 공유하면서, 첫 번째 입력한 요소 바로 뒤에 오는 두 번째 입력한 요소를 선택한다
: 같은 단계에 있는 태그 중 가장 가까운 요소만 선택한다
section + p { }
<header>
<section></section>
<p></p> <!-- 선택 -->
<p></p>
<p></p>
</header>
input:not([type="password"]) { }
오른쪽 HTML 문서를 보며 위의 지시령을 따라 선택자만 타이핑 하고 엔터 치면 된다
총 32개의 선택자들을 연습할 수 있어서 좋았다
막힌다면 오른쪽 힌트를 보거나 "Help I'm Stuck" 버튼을 눌러 참고 하면 된다