다양한 선택자를 배워봤습니다. 그런데 여러 선택자가 같은 요소를 가리키면 우선 순위를 어떻게 평가할까요?
순서
우선 가장 간단한 겁니다. 완전 똑같은 선택자가 나중에 또 나오면, 이전에 나온 스타일을 덮어쓰게 됩니다.
html
<h1>Heading 1</h1>
css
h1 {
color: blue;
text-align: center;
}
h1 {
color: green;
}
명시도 (Specificity)
같은 요소를 가리키지만 선택자가 다르다면, '명시도(specificity)'에 따라 우선 순위가 결정됩니다.
명시도 계산기
명시도 계산 방법을 알려드리겠습니다.
- 인라인 스타일이 가장 우선 순위가 높습니다.
- 선택자에 id가 많을 수록 우선 순위가 높습니다.
- 선택자에 class, attribute, pseudo-class가 많을 수록 우선 순위가 높습니다.
- 그 다음은 그냥 요소(또는 가상 요소)가 많은 순서입니다.
<ul> 태그 안에 <li> 태그 안에 <a id="link">가 있다고 가정해봅시다. <ul>과 <li>는 나중에 배울 '리스트' 태그입니다.
첫 번째 경우에는 일반 요소가 세 개, 가상 클래스가 한 개 있어서 '명시도 점수'가 13입니다. 두 번째 경우에는 일반 요소가 두 개, 가상 클래스가 한 개, 그리고 id가 한 개 있어서 112점입니다.
따라서 두 선택자에서 겹치는 스타일이 있는 경우, 두 번째 경우인 ul li:first-child #link 선택자의 스타일이 적용되는 거죠!
html
<ul>
<li><a id="link" href="#">Link 1</a></li>
<li><a id="link" href="#">Link 1</a></li>
<li><a id="link" href="#">Link 1</a></li>
<li><a id="link" href="#">Link 1</a></li>
</ul>
css
ul li:first-child #link {
color: green;
}
ul li:first-child a {
color: orange;
}
'교육 > [Codeit]웹 퍼블리싱' 카테고리의 다른 글
실습과제. css 최적화 (0) | 2021.07.11 |
---|---|
css 상속 (0) | 2021.07.11 |
실습과제. 마우스 오버 버튼 (0) | 2021.07.11 |
선택자 정리 (0) | 2021.05.12 |
실습과제. 코딩의 민족 (0) | 2021.05.12 |