Website/CSS

[CSS]Combinator

MoZZANG 2022. 3. 6. 14:17

▲ div안에 span과 p를, 그리고 p안에 다시 한번 span을 넣었다. 출력결과는 아래와 같다. 

 

 

1) 부모와 자식의 관계

 

만약 우리가 p안에 있는 span에만 background-color를 다른색으로 주고 싶다면 어떻게 해야할까?

 

위와 같은 형태의 코드를 사용하면 p안에 있는 span에만 적용되는 스타일을 사용할 수 있다.

   위에서 p는 부모selector이고 이어지는 span은 자식selector이다.

▲ 마우스를 가져다대면 어떤 형태인지 보여준다. 보다시피 p안에 들어있는 span이라는 것을 볼 수 있다.

결과는 아래와 같다.

 

 

 

 

 

2) 부모와 직속(Direct) 자식의 관계

 

그렇다면 p안의 span이 아니라 div안에있는 span 즉, p에서 독립되어 있지만 div에는 소속되어 있는 span에만 효과를 주고 싶다면?

 

div 다음에 '>'을 사용하면 직속(Direct)라는 의미이다. 즉, div의 직속 자식span을 가리키는 것이 되는 것이다.

▲ p에 소속된 span은 div의 직속(Direct) 자식이 아니고 p의 직속(Direct)자식이므로 해당되지 않는 것을 볼 수 있다.

 

 

 

 

 

 

3) Sibling  관계

 

▲ 위의 코드는 위와 같은 결과를 보여준다. 그럼 이 상태에서 아래와 같은 코드를 사용하면 어떤 결과가 나올까?

▲ 이번에는 '+'를 사용했다. 어떤 결과가 예상되는가? 결과는 바로 아래와 같다.

 

 

▲ 우선 p에 소속된 span은 변하지 않았다. 또한 <span>World</span>도 영향을 받지 않았다.

   즉, p바로 다음으로 나오는 span에만 영향을 준 것이다. '+'는 형제관계를 뜻하는 것으로 서로 붙어있는 관계를 뜻하게 된다. 즉, 둘 사이에 아무런 코드도 없어야 형제관계로 인정해주는 것이다.

 

▲p와 Hello사이에 다른 코드가 끼어들면

 

▲ 적용이 안되는 것을 볼 수 있다.

 

 

 

이럴 때 사용할 수 있는 combinator는 바로 '~' 이다.

 

 

▲ p와 형제관계지만 꼭 p바로 다음에 오지 않아도 적용이 되는 것을 볼 수 있다.

 

'Website > CSS' 카테고리의 다른 글

[CSS]States  (0) 2022.03.06
[CSS]Attribute Selector(특성 선택자)  (0) 2022.03.06
[CSS]Pseudo Selectors  (0) 2022.03.01
[CSS]Relative & Absolute  (0) 2022.03.01
position : fixed  (0) 2022.03.01