결합자
우리가 살펴볼 최종 선택자는 결합자라고 합니다. 다른 선택자를 서로 유용한 관계와 문서의 콘텐츠 위치를 제공하는 방식으로 결합하기 때문입니다.
전제 조건: | 기본 컴퓨터 활용 능력, 설치된 기본 소프트웨어, 파일 작업에 대한 기본 지식, HTML 기초 ( HTML 입문 학습), CSS 작동 방식에 대한 아이디어 ( CSS 첫 번째 단계 학습) |
---|---|
목적: | CSS에서 사용할 수 있는 다양한 결합자 선택자에 대해 알아봅시다. |
후손 결합자
후손 결합자 - 일반적으로 단일 공백(" ") 문자로 표시됩니다 - 첫 번째 선택자와 일치하는 조상(부모, 부모의 부모, 부모의 부모의 부모 등) 요소가 있는 경우 두 번째 선택자와 일치하는 요소가 선택되도록 두 선택자를 결합합니다. 후손 결합자를 활용하는 선택자를 하위 선택자라고 합니다.
body article p
아래 예에서는, .box
클래스가 있는 요소 내부에 있는 <p>
요소만 일치시킵니다.
자식 결합자
자식 결합자(>
)는 두 CSS 선택자 사이에 배치됩니다. 첫 번째와 일치하는 요소의 직계 자식인 두 번째 선택자와 일치하는 요소만 일치합니다. 계층 구조에서 더 아래에 있는 하위 요소는 일치하지 않습니다. 예를 들어, <article>
요소의 직계 자식인 <p>
요소만 선택하려면 다음을 수행하세요.
article > p
다음 예제에는, 정렬되지 않은 목록이 있으며, 내부에 정렬된 목록이 중첩되어 있습니다. 자식 결합자는 <ul>
의 직계 자식인 <li>
요소만 선택하고 위쪽 테두리로 스타일을 지정합니다.
이것을 자식 결합자로 지정하는 >
를 제거하면, 후손 선택자가 되고 모든 <li>
요소는 빨간색 테두리를 갖게 됩니다.
인접 형제 결합자
인접한 형제 선택자 (+
)는 두 CSS 선택자 사이에 배치됩니다. 첫 번째 선택자의 다음 형제 요소인 두 번째 선택자와 일치하는 요소만 일치합니다. 예를 들어, <p>
요소 바로 앞에 있는 모든 <img>
요소를 선택하려면 다음을 수행하세요.
p + img
일반적인 사용 사례는 아래 예와 같이 제목 뒤에 오는 단락으로 작업을 수행하는 것입니다. 이 예에서, 우리는 부모 요소를 <h1>
과 공유하고 <h1>
바로 다음에 오는 모든 단락을 찾고 있습니다.
<h1>
과 <p>
사이에 <h2>
와 같은 다른 요소를 삽입하면 단락이 더 이상 선택기와 일치하지 않으므로 요소가 인접할 때 적용되는 배경 및 전경색을 얻지 못합니다.
일반 형제 결합자
요소의 형제 요소가 바로 인접하지 않더라도 선택하려면 일반 형제 연결자(~
)를 사용할 수 있습니다. <p>
요소 다음에 오는 모든 <img>
요소를 선택하려면 다음을 수행합니다.
p ~ img
아래 예에서는 <h1>
뒤에 오는 모든 <p>
요소를 선택하고 있으며 문서에도 <div>
가 있지만 그 뒤에 오는 <p>
가 선택됩니다.
결합자 사용
문서의 일부를 선택하기 위해 이전 수업에서 배운 선택자를 연결자와 결합할 수 있습니다. 예를 들어 <ul>
의 직계 자식인 "a" 클래스가 있는 목록 항목을 선택하려면, 다음을 시도하세요.
ul > li[class="a"] {
}
그러나, 문서의 특정 부분을 선택하는 큰 선택자 목록을 만들 때는 주의하세요. 마크업에서 해당 요소의 위치에 매우 특정한 선택자를 만들었기 때문에 CSS 규칙을 재사용하기 어려울 것입니다.
간단한 클래스를 만들고 해당 요소에 적용하는 것이 더 나은 경우가 많습니다. 즉, 결합자에 대한 지식은 문서에서 스타일을 지정해야 하고 HTML이 CMS에 의해 생성되기 때문에 HTML에 액세스할 수 없는 경우 매우 유용할 것입니다.
능력을 시험해보세요
이 기사의 끝에 도달했지만, 가장 중요한 정보를 기억할 수 있나요? 계속 진행하기 전에 이 정보를 기억하고 있는지 확인하는 추가 테스트를 찾을 수 있습니다. - Test your skills: Selectors를 참조하세요.
요약
이 부분은 선택자에 대한 강의 마지막 세션입니다. 다음으로 CSS의 또 다른 중요한 부분인 cascade, specificity, and inheritance으로 이동합니다.