다음 HTML 구조에서 각 CSS 선택자가 선택하는 요소의 개수는?
```html
제목1
단락1
단락2
단락3
제목2
단락4
단락5
```
```css
A: article p /* ? 개 */
B: article > p /* ? 개 */
C: h2 + p /* ? 개 */
D: article ~ p /* ? 개 */
```
A. A:4개, B:3개, C:2개, D:2개
B. A:3개, B:3개, C:2개, D:2개
C. A:3개, B:3개, C:2개, D:1개
D. A:4개, B:3개, C:2개, D:1개
정답: B
복합 구조에서 Combinator들의 정확한 동작 분석:
A: `article p` (Descendant) - 3개:
• article 요소 내부의 모든 p 요소
• 단락1, 단락2, 단락4 선택
• 단락3, 단락5는 article 밖이므로 제외
B: `article > p` (Child) - 3개:
• article의 직접 자식인 p 요소들
• 단락1, 단락2, 단락4 선택
• 모든 p가 article의 직접 자식이므로 A와 동일
C: `h2 + p` (Adjacent Sibling) - 2개:
• h2 바로 다음에 오는 p 요소
• 제목1 → 단락1 ✓
• 제목2 → 단락4 ✓
• 총 2개 선택
D: `article ~ p` (General Sibling) - 2개:
• article 이후의 모든 형제 p 요소
• 첫 번째 article 이후 → 단락3 ✓
• 두 번째 article 이후 → 단락5 ✓
• 총 2개 선택