1. CSS Selector란?

CSS 선택자(Selector)는 HTML 요소를 선택하여 스타일을 적용하는 데 사용됩니다. 선택자는 어떤 HTML 요소에 스타일을 적용할지 지정하는 핵심 도구입니다.

2. CSS Selector의 분류 및 역할

2-1 기본 선택자 (Basic Selectors)

선택자설명예시역할
*전체 선택자* { margin: 0; }모든 요소에 적용
태그명태그 선택자p { color: red; }특정 태그에 스타일 적용
.클래스명클래스 선택자.highlight { font-weight: bold; }동일 클래스를 가진 여러 요소에 적용
#아이디명아이디 선택자#header { background: blue; }특정 요소 하나에 고유하게 적용

2-2 그룹 선택자 (Group Selectors)

선택자설명예시역할
A, B여러 선택자에 동일 스타일 적용h1, h2, p { margin: 0; }반복 스타일 코드를 줄여줌

2-3 결합 선택자 (Combinators)

선택자설명예시역할
A B하위 선택자div p {}div 안의 모든 p 요소 선택
A > B자식 선택자ul > li {}ul 바로 아래 li만 선택
A + B인접 형제 선택자h1 + p {}h1 바로 다음에 오는 p
A ~ B일반 형제 선택자h1 ~ p {}h1 이후에 나오는 모든 p

2-4 속성 선택자 (Attribute Selectors)

선택자설명예시역할
[attr]속성 존재 여부[disabled]disabled 속성이 있는 요소
[attr="value"]정확히 일치[type="text"]type이 text인 요소
[attr^="value"]시작 문자열[href^="https"]https로 시작하는 링크
[attr$="value"]끝 문자열[src$=".jpg"]jpg로 끝나는 이미지
[attr*="value"]포함 문자열[title*="abc"]abc가 포함된 title 속성

2-5 가상 클래스 선택자 (Pseudo-class Selectors)

선택자설명예시역할
:hover마우스 오버 시a:hover {}링크에 마우스 올릴 때
:active클릭 중일 때button:active {}버튼 클릭 순간
:focus포커스 시input:focus {}입력창 선택 상태
:first-child첫 번째 자식li:first-child첫 번째 li에만 스타일
:last-child마지막 자식li:last-child마지막 li에만 스타일
:nth-child(n)n번째 자식li:nth-child(2)두 번째 li
:not(selector)제외p:not(.title)title 클래스 아닌 p

2-6 가상 요소 선택자 (Pseudo-element Selectors)

선택자설명예시역할
::before요소 앞에 콘텐츠 추가p::before { content: "→ "; }꾸미기용
::after요소 뒤에 콘텐츠 추가p::after { content: ";"; }마무리용
::first-line첫 줄 스타일p::first-line { font-weight: bold; }인용문처럼 표현
::first-letter첫 글자 스타일p::first-letter { font-size: 200%; }잡지 스타일 효과

3. 실무 활용 팁

  • 효율적인 스타일링: ID보다 Class 중심 사용 권장 (#id는 우선순위가 높아 관리 어려움)
  • CSS 성능 최적화: 너무 구체적인 선택자(X) → 유지 보수 어려움
  • 정리된 구조 필요: BEM, SMACSS 같은 네이밍 규칙을 선택자에도 적용

4. 실습 예제

<!DOCTYPE html>
<html>
<head>
<style>
p.highlighted::before {
content: "👉 ";
}

div.notice > p:first-child {
color: red;
}

a[href^="https"] {
color: green;
}

input:focus {
border: 2px solid blue;
}
</style>
</head>
<body>
<div class="notice">
<p>첫 문장</p>
<p>두 번째 문장</p>
</div>

<p class="highlighted">중요한 문단</p>
<a href="https://example.com">안전 링크</a>
<input type="text" placeholder="여기에 입력">
</body>
</html>

5. 마무리 정리

구분사용 용도
기본 선택자가장 많이 사용, 전반적 스타일링
결합 선택자구조적 선택 (부모-자식, 형제 관계)
속성 선택자조건 기반 필터링
가상 클래스상태 기반 동작 (hover, focus 등)
가상 요소시각적 장식용 콘텐츠 추가

zerg96

Recent Posts

요양원 선택 전 반드시 확인해야 할 것들, 부모님 맡기기 전에 보세요

요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…

2일 ago

공공기관 채용 비리, 내부에서 터져나온 충격 증언

공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…

2일 ago

주식 손실 났을 때 세금 줄이는 방법, 아는 사람만 씁니다

주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…

2일 ago

음식 배달 늦으면 소비자가 취소할 수 있다, 몰랐던 권리

배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…

2일 ago

휴대폰 요금제 바꾸면 연 수십만원 절약, 지금 내 요금제 확인하세요

통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…

2일 ago

퇴직금 못 받았다면, 지금 당장 이렇게 하세요

퇴직 후 퇴직금을 받지 못했다면 즉시 노동부에 신고하세요. 지급 기한, 자격 요건, 신고 방법, 소액체당금…

2일 ago