본문 바로가기

교육/[Codeit]웹 퍼블리싱

css 우선순위

반응형

다양한 선택자를 배워봤습니다. 그런데 여러 선택자가 같은 요소를 가리키면 우선 순위를 어떻게 평가할까요?

순서

우선 가장 간단한 겁니다. 완전 똑같은 선택자가 나중에 또 나오면, 이전에 나온 스타일을 덮어쓰게 됩니다.

 

html

<h1>Heading 1</h1>

css
h1 {
  color: blue;
  text-align: center;
}

h1 {
  color: green;
}

 

 

 

 

 

명시도 (Specificity)

같은 요소를 가리키지만 선택자가 다르다면, '명시도(specificity)'에 따라 우선 순위가 결정됩니다.

명시도 계산기

명시도 계산 방법을 알려드리겠습니다.

  1. 인라인 스타일이 가장 우선 순위가 높습니다.
  2. 선택자에 id가 많을 수록 우선 순위가 높습니다.
  3. 선택자에 class, attribute, pseudo-class가 많을 수록 우선 순위가 높습니다.
  4. 그 다음은 그냥 요소(또는 가상 요소)가 많은 순서입니다.

<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;
}

728x90
반응형

'교육 > [Codeit]웹 퍼블리싱' 카테고리의 다른 글

실습과제. css 최적화  (0) 2021.07.11
css 상속  (0) 2021.07.11
실습과제. 마우스 오버 버튼  (0) 2021.07.11
선택자 정리  (0) 2021.05.12
실습과제. 코딩의 민족  (0) 2021.05.12