AI 보이는 추론 실험실

AI가 뒤에 쓴 CSS 규칙이 항상 우선한다고 판단해도 되나요?

같은 요소에 적용되는 CSS 선언의 출처·중요도·선택자 우선순위를 구별하고, 뒤에 쓴 규칙이 통하지 않는 사례를 직접 바꿔 봅니다.

중급게시 2026-10-23읽기·실험 약 10분확인 문제 2개규칙 기반 실행한국논리학협회 자체 제작제작·검수 LTCT 편집부

밝은 웹 디자인 작업실에서 두 사람이 빨강·파랑 색상 견본을 비교하고 작은 갈색 안경 올리가 두 날개로 파란 카드를 들고 있는 모습
주제 이해를 돕는 AI 생성 연출 사진 · 주제 이해를 돕기 위한 AI 생성 이미지 · LTCT 자체 제작
오늘의 질문

같은 글자에 ‘글자색은 파란색’과 ‘글자색은 빨간색’을 따로 지정했다면 마지막에 쓴 색이 무조건 적용될까요?

요소·클래스·ID 선택자의 구체성 0-0-1, 0-1-0, 1-0-0을 비교하는 계단형 도해
요소·클래스·ID 선택자의 구체성 0-0-1, 0-1-0, 1-0-0을 비교하는 계단형 도해 · 한국논리학협회 자체 제작
그림 크게 보기 ↗
01

한 요소에 글자색 규칙이 둘이면 무엇을 확인하나요?

웹페이지의 한 문단에 적용되는 CSS 규칙을 두 개 만들었습니다. 첫 규칙은 ‘p { color: blue; }’이고 뒤 규칙은 ‘.note { color: red; }’입니다. 문단에 note 클래스가 붙어 있으면 둘 다 그 문단을 가리킵니다. 이때 빨간색이 적용되는 까닭은 단지 뒤에 썼기 때문이 아닙니다. 클래스 선택자 .note가 요소 이름 선택자 p보다 우선순위가 높기 때문입니다.

CSS는 웹페이지 요소의 색·크기·배치 등을 정하는 규칙입니다. 어떤 선언을 적용할지는 해당 요소에 규칙이 맞는지 확인한 뒤 출처·중요도·계층 등을 비교해 결정합니다. 오늘은 작성자가 만든 같은 스타일시트의 보통 선언을 비교합니다. @layer와 @scope, 인라인 스타일, 애니메이션·전환은 쓰지 않으며 선택자의 구체성과 선언 순서만 바꿉니다.

참고 · MDN Web Docs — MDN CSS Specificity ↗

02

클래스보다 ID 선택자가 강하다는 말은 무슨 뜻인가요?

‘#notice { color: blue; }’와 ‘.note { color: red; }’가 같은 요소에 적용된다고 가정합니다. ID 선택자의 구체성은 (1,0,0), 클래스 선택자는 (0,1,0)입니다. 세 수를 더하거나 하나의 수로 합쳐 비교하는 것이 아니라 왼쪽 자리부터 차례대로 비교합니다. 따라서 뒤에 클래스 규칙을 써도 같은 조건에서는 ID 선택자의 파란색이 적용됩니다.

선택자 ‘p’는 (0,0,1)입니다. 그러므로 앞에서 정한 같은 조건에서 ‘#notice’가 ‘.note’보다, ‘.note’가 ‘p’보다 우선합니다. 선택자 이름에 붙인 글자의 길이나 선언에서 사용한 색 이름은 구체성 계산에 들어가지 않습니다. 규칙을 실제로 적용할 요소가 어떤 ID와 클래스를 가졌는지부터 확인해야 합니다.

참고 · MDN Web Docs — MDN CSS Cascade Introduction ↗

03

동일한 구체성을 가진 두 규칙은 어떤 순서로 고를까요?

이제 ‘.note { color: blue; }’와 ‘.note { color: red; }’를 같은 문단에 적용해 봅시다. 두 선택자는 서로 같은 구체성을 가집니다. 출처·계층·중요도·범위 등 앞선 조건까지 같다면 뒤에 나온 빨간색 선언이 적용됩니다. 이번에는 선언의 위치가 결정을 바꾼 것입니다. 두 규칙의 순서를 바꾸면 파란색으로 달라져야 합니다.

그렇다고 뒤에 쓰인 모든 규칙이 우선한다고 일반화해서는 안 됩니다. CSS에는 스타일 출처, 계층, !important, 범위와 같은 조건이 더 있습니다. 이 활동은 그 가운데 비교 조건을 고정한 세 가지 예시만을 계산합니다. 실제 브라우저의 전체 규칙을 모두 재현하는 엔진이나 접근성 사용자 스타일의 우선순위를 판정하는 도구로 소개하지 않습니다.

참고 · W3C — W3C CSS Cascading and Inheritance Level 6 §2.1 ↗

04

AI가 규칙을 설명할 때 무엇을 빠뜨리기 쉬울까요?

AI에게 코드 두 줄만 보여 주면 AI가 요소의 클래스와 ID를 정확히 알지 못한 채 결과를 단정할 수 있습니다. 문단이 note 클래스를 가지고 있는지, notice라는 ID가 실제로 지정되어 있는지, 두 선언이 같은 출처·같은 중요도에 있는지 확인해야 합니다. 어느 규칙이 적용되는지 판단할 근거가 빠졌다면 질문을 다시 구체적으로 만들어야 합니다.

화면에서 ‘요소와 클래스’, ‘ID와 클래스’, ‘같은 클래스 두 번’ 중 한 사례를 선택하세요. 선택자와 구체성, 브라우저에 적용된 글자색을 함께 확인합니다. 마지막 사례에서는 선언 순서를 뒤집어 결과를 비교합니다. 샘플 문단은 주변 페이지의 스타일과 분리해 위의 세 사례를 실제 CSS로 적용합니다.

참고 · W3C — W3C CSS Cascading and Inheritance Level 6 §2.1 ↗

직접 확인하기 · 규칙 기반 실행

CSS 선택자 구체성과 순서 바꾸기

요소 대 클래스 사례에서 뒤에 나온 빨간색이 적용되는 이유를 적습니다. ID 대 클래스 사례에서는 뒤에 쓴 클래스 규칙이 이기지 않는지 확인합니다. 같은 클래스 두 규칙의 순서를 바꿔 실제 적용 색을 비교하고 초기화합니다.

선택자와 선언 순서 비교

p { color: blue; }
.note { color: red; }
앞에서 뒤로 읽는 선언 순서
선택자구체성글자색
p(0, 0, 1)파랑
.note(0, 1, 0)빨강

샘플 요소: <p id="notice" class="note">

브라우저 적용 색: 확인 중. 클래스 선택자의 구체성이 더 높습니다.

페이지와 분리된 샘플에 위 CSS를 실제로 적용합니다. 같은 작성자의 보통 선언이며 @layer·@scope·인라인 스타일·애니메이션·전환을 사용하지 않습니다.

관계를 읽고, 다른 상황에 적용하기

두 문제로 생각 확인

1같은 출처·계층·중요도에서 #notice와 .note가 한 요소의 글자색을 지정했다면 어느 선택자가 우선할까요?
2두 .note 규칙이 같은 중요도로 충돌하고 다른 조건도 같다면 무엇으로 최종 색을 정할까요?

두 문제의 답을 모두 선택하면 해설을 볼 수 있습니다.

나의 설명으로 마무리

오늘 발견한 관계

저장 위치를 확인하고 있습니다…

출처와 제작 안내

원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.

  1. MDN CSS Specificity ↗MDN Web DocsMDN CSS Specificity

    선택자 구체성·동률일 때 선언 순서 · 2026-10-22 원문 확인. 설명·수치·활동·문항은 자체 제작.

  2. MDN CSS Cascade Introduction ↗MDN Web DocsMDN CSS Cascade Introduction

    구체성보다 앞서는 출처와 중요도·계층 · 2026-10-22 원문 확인. 설명·수치·활동·문항은 자체 제작.

  3. W3C CSS Cascading and Inheritance Level 6 §2.1 ↗W3CW3C CSS Cascading and Inheritance Level 6 §2.1

    캐스케이드의 출처·중요도·계층·구체성·범위 근접성·선언 순서. 규격 작업초안임을 구분. · 2026-10-22 원문 확인. 설명·수치·활동·문항은 자체 제작.