카테고리 없음
[css] 가상 선택자, 구체성, cascading
지윤공원🌳
2021. 3. 14. 23:33
728x90
가상 선택자
가상 선택자에는 가상 클래스와 가상 요소가 있습니다.
먼저 가상 클래스는 미리 정의해둔 상황에 적용되도록 약속된 보이지 않는 클래스입니다.
(가상 클래스)
1. 문서 구조와 관련
:first-child : 첫 번째 자식 요소 선택
:last-child : 마지막 자식 요소 선택
li:first-child {
color: purple;
}
li:last-child {
color: gray;
}
2. 앵커 요소와 관련
:link : 하이퍼 링크이면서 아직 방문하지 않은 앵커 (보통 파란색)
:visited : 방문한 하이퍼링크를 의미 (보통 보라색)
a:link {
color: blue;
}
a:visited {
color: purple;
}
3. 사용자 동작과 관련
:focus: 현재 입력 초점을 가진 요소에 적용 (tab을 통해 확인 가능)
:hover: 마우스 포인터가 있는 요소에 적용 (클릭 없이 올리기만 하면 적용)
:active: 사용자 입력으로 활성화된 요소에 적용 (클릭시 아주 잠깐)
button:focus {
background-color: yellow;
}
button:hover {
font-weight: 800;
}
button:active {
color: red;
font-weight: 900;
}
(가상 요소)
:before : 가장 앞에 요소를 삽입
:after : 가장 뒤에 요소를 삽입
:first-line : 요소의 첫 번째 줄에 있는 텍스트를 감쌈 (적용)
:first-letter : 블록 레벨 요소의 첫 번째 문자를 감쌈 (적용)
p::before {
content: "start of text"
}
p::after {
content: "end of text"
}
p::first-line {
background-color: yellow;
}
p::first-letter {
font-size: 30px;
}
구체성
- 0, 1, 0, 0 : 선택자에 있는 모든 id 속성값
- 0, 0, 1, 0 : 선택자에 있는 모든 class 속성값, 기타 속성, 가상 클래스
- 0, 0, 0, 1 : 선택자에 있는 모든 요소, 가상 요소
- 전체 선택자는 0, 0, 0, 0을 가진다.
- 조합자는 구체성에 영향을 주지 않는다. (>, + 등)
- 인라인 스타일의 구체성 값은 1, 0, 0, 0이며 규칙 중 가장 큰 구체성을 가진다.
- important는 모든 구체성을 무시하고 우선순위를 가진다. ex !important
cascading
- 스타일 규칙들을 모아서 중요도가 명시적으로 선언되었는지에 따라 분류한다.
- 중요도가 명시적으로 선언된 규칙들은 그렇지 않은 규칙들보다 우선한다.
- 중요도가 있는 규칙들끼리는 아래 다른 규칙들을 적용받는다.
- 스타일 규칙들을 출처에 따라 분류한다.
- 제작자 스타일 규칙이 사용자 에이전트 스타일 규칙보다 우선이다.
- 스타일 규칙들을 구체성에 따라 분류니다.
- 구체성이 높은 규칙들이 우선이다.
- 스타일 규칙들을 선언 순서에 따라 분류합니다.
- 뒤에 선언된 규칙일수록 우선합니다. (cascading = 폭포(처럼 흐르다))
By. boostcourse 웹 UI 개발 강좌
728x90