CSS Specificity 계산기

CSS 선택자의 우선순위(명시도) 점수를 계산하고 비교합니다.

카테고리: 개발자 도구

언제 사용하나요?

CSS 스타일이 의도대로 적용되지 않을 때 어떤 선택자가 우선하는지 확인할 때, 여러 선택자의 우선순위를 비교할 때, !important 없이 스타일 충돌을 해결할 때 사용합니다.

사용 방법

  • CSS 선택자를 입력창에 입력합니다.
  • (ID, 클래스·속성·의사클래스, 요소·의사요소) 점수가 계산됩니다.
  • 쉼표로 여러 선택자를 입력해 어느 것이 우선 적용되는지 비교합니다.

입력값 안내

CSS 선택자를 입력합니다. ID(#), 클래스(.), 속성([]), 의사클래스(:hover), 의사요소(::before)와 :is()·:not()·:where()를 지원합니다.

계산·변환 기준

CSS 명시도 규칙에 따라 A(ID 개수), B(클래스·속성·의사클래스 개수), C(요소·의사요소 개수)를 세어 점수를 계산합니다. :where()는 0, :is()·:not()은 인자 중 가장 높은 값을 적용합니다.

사용 예시

  • 스타일 충돌 해결 - 두 선택자 중 어느 것이 우선 적용되는지 점수로 확인합니다.
  • 선택자 비교 - 여러 선택자의 우선순위를 한눈에 비교합니다.
  • CSS 학습 - 명시도 규칙을 점수로 확인하며 CSS 우선순위 개념을 익힙니다.

예시

  • #nav ul.menu li a:hover → 1, 2, 3
  • .btn 대 a:hover → A·B·C 순으로 비교해 우선순위 판정

주의사항

  • 특이성 계산 결과는 참고용입니다. !important와 :where() 등 특이성을 무시하는 경우는 별도로 확인하세요.
  • 입력 데이터는 브라우저에서만 처리되며 서버로 전송되지 않습니다.

계산·사용 가이드

명시도 비교 규칙

A(ID), B(클래스·속성·의사클래스), C(요소·의사요소) 순으로 비교합니다. 앞 자리 점수가 크면 뒷자리와 무관하게 우선 적용됩니다.

:is(), :not(), :where()

:where()는 명시도를 0으로 만들고, :is()와 :not()은 괄호 안 인자 중 가장 높은 명시도를 따릅니다. 인라인 스타일과 !important는 선택자보다 우선합니다.

자주 묻는 질문

우선순위는 어떻게 비교하나요?

A(ID) → B(클래스 등) → C(요소) 순으로 비교하며, 앞 자리 점수가 크면 무조건 우선합니다.

:where()는 왜 0인가요?

:where()는 명시도를 0으로 만드는 의사클래스라 안에 무엇이 들어가도 점수에 영향을 주지 않습니다.

인라인 스타일과 !important는요?

이 계산기는 선택자 명시도만 계산합니다. 인라인 스타일과 !important는 그보다 더 높은 우선순위를 가집니다.

:is()와 :not()은 어떻게 계산되나요?

두 의사클래스는 괄호 안 인자 중 가장 높은 명시도를 따릅니다.

관련 도구

  • CSS 단위 변환기 - px, rem, em, %, vw, vh를 변환합니다.
  • CSS 포매터 - minify되거나 뒤섞인 CSS 코드를 선택자·속성별로 줄 분리해 정렬합니다. @media 쿼리와 :root 변수 블록도 계층에 맞게 들여쓰기합니다.
  • 색상 코드 변환기 - HEX, RGB, RGBA, HSL, HSLA 색상 코드를 서로 변환하고 색상을 미리봅니다.
  • CSS clamp 생성기 - 최솟값·최댓값과 뷰포트 범위를 입력해 CSS clamp() 함수를 자동으로 생성합니다.
  • Flexbox 생성기 - flex-direction, justify-content, align-items, gap 값을 조정해 Flexbox CSS를 생성합니다.
  • JSON 포매터 - JSON 문자열을 보기 좋게 들여쓰기하거나 최소화합니다. 유효성 오류도 함께 표시합니다.