Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS 일반 형제 선택자(~) 개념부터 실전 예제까지 한 번에 정리

CSS의 일반 형제 선택자(general sibling selector)는 특정 요소 뒤에 위치하는 모든 형제 요소를 선택하는 데 사용됩니다. 이때 두 요소는 반드시 같은 부모 요소를 공유해야 합니다. 인접 형제 선택자(+)가 바로 다음에 오는 하나의 요소만 선택하는 것과 달리, 물결표(~)를 사용하면 뒤따르는 모든 해당 요소가 한꺼번에 스타일링됩니다.

기본 문법

CSS 일반 형제 선택자의 기본 문법은 다음과 같습니다.

element ~ element {
    /* 선언부 */
}

물결표(~) 기호를 기준으로, 앞쪽 요소 이후에 등장하는 동일한 부모를 가진 형제 요소들이 모두 선택됩니다. 아래 예제를 통해 실제 동작 방식을 확인해 보겠습니다.

예제 1: p ~ ul 선택자 활용하기

<!DOCTYPE html>
<html>
<head>
<style>
* {
    float: left;
    padding-left: 14px;
    list-style: none;
}
p ~ ul {
    box-shadow: inset 4px 0 3px lime;
}
</style>
</head>
<body>
<ul>
<li><img src="https://www.tutorialspoint.com/images/pl-sql.png"></li>
</ul>
<p>We provide learning tutorials, quizzes and video tutorials.</p>
<ul>
<li>Tutorials on databases and programming languages.</li>
<li>Quizzes to check knowledge of databases and languages.</li>
<li>Video Tutorials to easily understand the technologies.</li>
</ul>
<ul>
<li><img src="https://www.tutorialspoint.com/images/mongodb.png"></li>
<li><img src="https://www.tutorialspoint.com/images/db2.png"></li>
<li><img src="https://www.tutorialspoint.com/images/sql.png"></li>
</ul>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

CSS 일반 형제 선택자(~) 개념부터 실전 예제까지 한 번에 정리

<p> 태그보다 뒤에 위치한 두 개의 ul 요소에만 라임색 내부 그림자(box-shadow)가 적용된 것을 확인할 수 있습니다. 맨 앞의 ul은 p 요소보다 먼저 나오기 때문에 선택되지 않습니다.

예제 2: img ~ p 선택자 활용하기

<!DOCTYPE html>
<html>
<head>
<style>
* {
    float: left;
    padding: 10px;
    list-style: none;
}
img ~ p {
    background-color: burlywood;
}
</style>
</head>
<body>
<p>This is demo text.</p>
<img src="https://www.tutorialspoint.com/big_data_analytics/images/big-data-analytics-mini-logo.jpg">
<p>Learn Big Data Analytics at no cost.</p>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

CSS 일반 형제 선택자(~) 개념부터 실전 예제까지 한 번에 정리

img 요소보다 나중에 등장한 p 요소에만 버터색(burlywood) 배경이 적용됩니다. 이미지 앞에 있는 첫 번째 p 요소는 선택 대상에서 제외되는 점이 핵심입니다.

인접 형제 선택자(+)와의 차이점

일반 형제 선택자(~)는 자주 헷갈리는 인접 형제 선택자(+)와 비교하면 이해하기 쉽습니다.

  • 일반 형제 선택자(A ~ B): A 뒤에 오는 모든 B 형제 요소를 선택합니다.
  • 인접 형제 선택자(A + B): A 바로 다음에 오는 첫 번째 B 요소 하나만 선택합니다.

따라서 여러 개의 후속 요소를 한 번에 스타일링해야 할 때는 ~ 선택자를, 특정 순서의 단 하나의 요소만 지정하고 싶을 때는 + 선택자를 사용하는 것이 좋습니다.