정리
[비전공자를 위한 HTML/CSS] (18) 구체성(명시도)
쿠르쿠르쿠
2021. 8. 10. 14:28
구체성 : 선택자에게 어떤 규칙이 우선순위로 적용되어야 할지를 구체적으로 수치화 한것.
구체성은 4개의 값(0, 0, 0, 0)으로 이루어져 있다. 좌측의 값이 높을 수록 높은 구체성을 갖는다.
- 1, 0, 0, 0 : 인라인 스타일
- 0, 1, 0, 0 : 선택자에 있는 모든 id 속성 값.
- 0, 0, 1, 0 : 선택자에 있는 모든 class 속성값, 기타 속성, 가상 클래스
- 0, 0, 0, 1 : 선택자에 있는 모든 요소, 가상 요소
- 0, 0, 0, 0 : 전체 선택자
- 조합자(>, +, ...)는 구체성에 영향을 주지 않는다.
h1 {...} /* 0, 0, 0, 1 */
body h1 {...} /* 0, 0, 0, 2 */
.grape {...} /* 0, 0, 1, 0 */
#bright {...} /* 0, 1, 0, 0 */
p.bright em.dark {...} /* 0, 0, 2, 2 */
#page {...} /* 0, 1, 0, 0 */
div#page {...} /* 0, 1, 0, 1 */
선택자의 구체성값을 잘 알아야 많은 스타일 규칙들 정의 할 때 의도치 않은 일 발생X.
인라인 스타일
<style>
p#page {color: red;} /* 0, 1, 0, 1 */
</style>
<p id="page" style="color: blue;">abcdefg</p> /* 1, 0, 0, 0*/
important
: 별도의 구체성은 없으나, 모든 구체성을 무시하고 우선권을 갖는다.
<style>
p#page { color: red !important; }
</style>
<p id="page" style="color: blue">abcdefg</p>