때문에 #outset>li 라고 입력 시 어떠한 태그도 영향을 받지 않게 된다. 그 이유는 #outset의 자식은 ol이다. 여기서의 li굳이 표현한다면 #outset의 손자태그가 되기 때문에 해당 코드는 아래와 같이 color 변경 없이 나타난다.
- adjacent sibling selector ( " + " )
adjacent sibling 번역시 인접한 형제라는 의미를 가지고 있으며, + 부호로 표현된다. 아래의 예제를 보자.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#A + li {
color : red;
}
</style>
</head>
<body>
<div id="outset"><!-- 모두를 감싸는 시초태그 -->
<ol><!--outset의 자손들 -->
<li id="A">AAA</li>
<li>BBB
<ul><!-- BBB의 새로운 자식 -->
<li>BBB-1</li>
<li>BBB-2</li>
<li>BBB-3</li>
</ul>
</li>
<li>CCC</li>
<li>DDD</li>
</ol>
</div>
</body>
</html>
이번에는 AAA에 id를 부여하고 해당 태그의 인접한 형제를 찾아보도록 하자. 결과를 확인해보면 바로 아래의 태그인 BBB와 BBB가 품고 있는 자손 태그들이 선택된 것을 확인할 수 있다. 다만 CCC와 DDD는 형제태그임에도 불구하고 인접하지 않아 선택되지 않는 것을 확인할 수 있다.
- general sibling selector( " ~ " )
general sibling 을 번역하면 일반적인 형제다. 형제라는 개념은 자신과 동등한 위치에 있는 태그들을 뜻한다. 즉 선택한 태그와 같은 레벨에 있는 선택자들이 선택된다. 아래의 예제를 보자.
이번에는 BBB의 자손인 BBB-1의 모든 형제들을 찾아보도록 하자. BBB-1에 id를 b1으로 부여하고 이후 b1과 형제관계에 있는 li 태그들을 모두 찾는 것이다. 결과를 확인해보면 인접한 태그 BBB-2 뿐 아니라 인접하지 않은 BBB-3까지 선택됨으로써 모든 형제들이 지정된 것을 확인할 수 있다.