선택자의 우선순위
!important가장 높은 우선순위 (강제화라서 자주 사용 X )color: red !important;- 인라인 스타일
- 아이디 선택자
#- 클래스 선택자
.- 태그 선택자
- 전체 선택자
*
→ 동일한 우선순위일 경우에는 나중에 선언된 스타일이 적용된다.
| 종류 | 형태 |
|---|---|
| 전체 선택자 | * |
| 태그 선택자 | 태그 ex) h1 |
| id 선택자 | #아이디이름 |
| class 선택자 | .클래스이름 |
| 속성 선택자 | 선택자 [속성 등식 값] |
| 후손 선택자 | 선택자 선택자 |
| 직계자손 선택자 | 선택자 > 선택자 |
| 반응 선택자 | 선택자 : action or : hover |
| 상태 선택자 | 선택자:checked etc… |
| 구조 선택자 | 선택자:nth-of-type() etc… |
# 기호를 사용하여 선택class=”a b”[태그명].[클래스명]<style>
li.apple {
color: red;
}
</style>
<body>
<li class="apple">사과</li>
</body>ul#sample.test선택자[속성 등식 값]
| 선택자 | 설명 | |
|---|---|---|
선택자[속성 = 값] | 정확히 일치하는 요소 선택 | input[type = "text"] |
선택자[속성 ~= 값] | 속성이 공백으로 구분된 값들 중 하나와 일치하는 요소 선택 | div[data-role ~= row] |
선택자[속성 != 값] | 속성이 특정 값과 일치하지 않는 요소 선택 | div[data-role != row] |
선택자[속성 ^= 값] | 속성이 특정 값으로 시작하는 요소 선택 | div[data-role ^= row] |
선택자[속성 $= 값] | 속성이 특정 값으로 끝나는 요소 선택 | div[data-role $= 9] |
선택자[속성 *= 값] | 속성이 특정 값을 포함하는 요소 선택 | div[data-role *= row] |
a b : a인 요소의 후손 요소들 중 b요소에 스타일을 적용>a > b : a인 요소의 직계자손 요소 중 b요소에 스타일을 적용table > tbody > tr > th : 코드에 tbody가 없어도 적어줘야함 그래서 사용x태그 관계
- 부모 자손 관계
><div> <p>div의 자손(직계)</p> </div>- 조상 후손 관계
<div> <section> <p>section의 자식 & div의 후손인 p 태그</p> </section> </div>- 형제 관계 : 같은 부모를 가진 요소들
<div> <h1>1번 형제</h1> <p>2번 형제</p> <div>3번 형제</div> </div>
사용자의 반응으로 생성되는 특정한 상태
:hover : 마우스 커서를 올린 태그
:active : 마우스로 클릭한 태그
| 선택자 | 설명 |
|---|---|
선택자:checked | 체크된 요소 선택 |
선택자:focus | 포커스된 요소 선택 |
선택자:enabled | 활성화된 요소 선택 |
선택자:disabled | 비활성화된 요소 선택 |
/*checkbox,radio가 선택된 상태*/
input:checked {
background-color: orange;
}
/*입력 양식에 포커스 둔 상태*/
input:focus {
background-color: orange;
}
/*입력할 수 있는 상태*/
input:enabled {
background-color: lightgray;
}
/*입력할 수 없는 상태*/
input:disabled {
background-color: gray;
}
| 선택자 | 설명 |
|---|---|
선택자:first-child | 첫 번째 자식 태그 선택 |
선택자:last-child | 마지막 자식 태그 선택 |
선택자:nth-child(수열) | 앞에서 수열 번째 태그 선택 |
선택자:nth-last-child(수열) | 뒤에서 수열 번째 태그 선택 |
선택자:first-of-type | 같은 type 중 첫 번째 태그 선택 |
선택자:last-of-type | 같은 type 중 마지막 태그 선택 |
선택자:nth-of-type(수열) | 같은 type 중 수열 번째 태그 선택 |
선택자:nth-last-of-type(수열) | 같은 type 중 뒤에서 수열 번째 태그 선택 |
.sample div:nth-of-type(3) {
/* div 중 3번째에 */
background-color: aqua;
}
.sample div:nth-of-type(2n or even) {
/* div 중 짝수들 / 홀수는 odd*/
background-color: rgb(47, 255, 0);
}
:first-child를 사용할 때 선택자 유의 -> first-of-type 사용하는게 좋음
/* 자식 순서가 p -> div 일때 */
/*첫번째 자식이 p이고 div가 아니라서 적용이 안됨*/
.sample div:first-child {
border: 2px solid rgb(43, 119, 59);
}
/*첫번째 자식이 p라 of type을 더 많이 사용하는게 정확함*/
.sample div:first-of-type {
border: 2px solid rgb(251, 0, 255);
}
| 기본 | 16px=1rem |
|---|---|
| % | 부모에서 상속되는 넓이의 상대 단위 |
| em | (배수 단위) 부모 요소가 가지고 있는 폰트 사이즈의 배수 → 화면 크기 변할 때 유용 |
| rem | 루트에서 선택된 폰트의 배수 (root) |
| px | (절대 단위) |