beepbeep
CSS 선택자(Selector) - (2) 복합 선택자 본문
- 자식 선택자
- 후손 선택자
- 동위 선택자
1. 자식(자손) 선택자
부모 요소 > 자식 요소
자식 선택자는 특정 요소의 바로 아래 요소인 자식 요소를 선택하는 선택자입니다.
' > ' 기호를 사용해 양쪽 요소의 부모 자식 관계를 표현합니다.
자식 요소를 선택할 때는 태그, class, id, 속성 선택자 등을 사용할 수 있습니다.
<!-- 예시1 -->
<fieldset>
<ul>
<li class="dogs"> 강아지
<p id="dog">강아지는 개과 동물입니다. </p>
</li>
<li class="cats"> 고양이
<p>고양이는 고양이과 동물입니다. </p>
</li>
<li class="bears"> 판다
<p>판다는 곰과 동물입니다.</p>
</ul>
</fieldset>
위의 예시에서, <ul>은 <fieldset>의 자식 요소입니다.
따라서 자식 선택자를 이용해 <ul> 요소를 선택하고 싶다면 다음과 같이 작성할 수 있습니다.
fieldset > ul{ font-weight: bold; }
그런데 자식 선택자는 부모 요소 바로 아래에 위치한 요소만을 선택할 수 있습니다.
fieldset > p{ color: green; }
만약 위와 같이 작성한 경우, <p>요소는 <fieldset>의 바로 아래 요소, 즉 자식 요소가 아니기 때문에 선택되지 않습니다.
만약 자식 선택자를 사용해 <p>요소를 선택하고 싶다면 아래와 같이 자식 선택자를 중첩해서 사용해 선택할 수 있습니다.
fieldset > ul > li > p{ color: green; }
2. 후손 선택자
부모 요소 후손 요소
후손 선택자는 부모 요소의 특정한 하위 요소를 전부 선택하는 선택자입니다.
부모 요소 후손 요소 사이에 띄어쓰기를 해서 두 요소의 관계를 표현합니다.
후손 선택자는 자식 선택자와 달리 바로 아래에 있는 요소가 아니어도 선택할 수 있습니다.
fieldset p{ color: green; }
따라서 위와 같이 작성하면, <fieldset>의 후손 요소인 <p> 태그를 선택할 수 있게 됩니다.
3. 형제 선택자
형제 선택자는 같은 부모를 가진 자식 요소, 즉 형제 관계에 있는 요소를 선택할 때 사용할 수 있는 선택자입니다.
- A요소 + B요소 : A요소의 형제 요소 중 A요소 바로 다음에 오는 B요소만 선택하는 선택자입니다. 인접 형제 선택자라고도 불립니다.
- A요소 ~ B요소 : A요소의 형제 요소 중 A요소 뒤에 있는 모든 B요소를 선택하는 선택자입니다. 일반 형제 선택자라고도 불립니다.
.dogs + li{color: red;}
위와 같이 인접 형제 선택자를 사용한 경우, '.dogs'를 속성으로 가진 요소의 바로 다음 요소,
즉 <li class="cats"> 요소가 선택됩니다.
.dogs ~ li{color: red;}
일반 형제 선택자를 사용했다면, '.dogs'를 속성으로 가진 요소 다음에 나오는 모든 <li> 요소,
즉 <li class="cats"> 요소와 <li class="bears"> 요소가 모두 선택됩니다.
'HTML, CSS' 카테고리의 다른 글
flex-item 전용 속성 (0) | 2022.10.18 |
---|---|
CSS flex (0) | 2022.10.11 |
CSS 선택자 우선순위 (0) | 2022.10.10 |
CSS 선택자(Selector) - (3) 가상 클래스 선택자 (0) | 2022.10.10 |
CSS 선택자(Selector) - (1) 기본 선택자 (0) | 2022.10.09 |