원하는 요소의 선택, Selectors
선택자(Selector)란?
CSS에서 선택자(Selector)란 스타일을 적용할 HTML 요소를 지정하는 패턴이다.
선택자 { 속성: 값; } 형태로 사용하며, 어떤 요소를 대상으로 할지를 결정하는 것이 선택자의 역할이다.
선택자 종류
① 전체 선택자
*는 문서 내 모든 요소를 선택한다.
주로 CSS 초기화(reset)에 사용된다.
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}② 태그 선택자
HTML 태그 이름을 그대로 사용하는 선택자이다.
h1 {
font-size: 2rem;
}③ 클래스 선택자
.클래스명 형태로 사용한다.
하나의 클래스는 여러 요소에 적용할 수 있고, 하나의 요소에 여러 클래스를 지정할 수도 있다.
.box {
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}④ ID 선택자
#아이디명 형태로 사용한다.
문서 내에서 고유한 요소 하나를 가리킨다.
#header {
position: fixed;
top: 0;
width: 100%;
}⑤ 속성 선택자
HTML 요소의 속성(attribute)을 기준으로 선택하는 방법이다.
/* href 속성이 존재하는 a 태그 */
a[href] {
text-decoration: underline;
}
/* href가 "https"로 시작하는 a 태그 */
a[href^="https"] {
color: green;
}⑥ 자손 결합자
특정 요소의 모든 하위 요소를 선택한다.
/* nav 안에 있는 모든 a 태그 */
nav a {
color: white;
}⑦ 자식 결합자 (>)
바로 아래 직계 자식 요소만 선택한다.
/* ul의 직계 자식인 li만 선택 */
ul > li {
list-style: none;
}⑧ 인접 형제 결합자 (+)
같은 부모를 가진 바로 다음 형제 요소 하나를 선택한다.
/* h2 바로 다음에 오는 p 하나만 선택 */
h2 + p {
font-size: 1.1rem;
color: #555;
}⑨ 일반 형제 결합자 (~)
같은 부모를 가진 이후의 모든 형제 요소를 선택한다.
/* h2 이후에 오는 모든 p를 선택 */
h2 ~ p {
margin-left: 1rem;
}⑩ 가상 클래스(Pseudo-class)
요소의 특정 상태를 선택하는 선택자이다.
: 한 개를 사용한다.
/* 마우스를 올렸을 때 */
button:hover {
background-color: #006be6;
}⑪ 가상 요소(Pseudo-element)
HTML에 실제로 존재하지 않는 가상의 요소를 생성해 스타일을 적용한다.
:: 두 개를 사용한다.
/* 요소 앞에 콘텐츠 삽입 — content 속성 필수 */
.badge::before {
content: ' ';
}⑫ 선택자 그룹화
여러 선택자에 동일한 스타일을 적용할 때 ,로 묶어 작성한다.
h1, h2 {
font-family: 'Pretendard', sans-serif;
color: #222;
}정리
| 분류 | 예시 | 설명 |
|---|---|---|
| 전체 | * | 모든 요소 |
| 태그 | h1 | 특정 태그 |
| 클래스 | .box | 클래스 이름 |
| ID | #header | 고유 ID |
| 속성 | a[href] | 속성 기반 |
| 자손 | nav a | 모든 하위 요소 |
| 자식 | ul > li | 직계 자식만 |
| 인접 형제 | h2 + p | 바로 다음 형제 |
| 일반 형제 | h2 ~ p | 이후 모든 형제 |
| 가상 클래스 | :hover | 특정 상태 |
| 가상 요소 | ::before | 가상 콘텐츠 |
마지막 수정