>  기사  >  웹 프론트엔드  >  N번째 하위 선택기가 하나의 요소가 아닌 모든 요소에 스타일을 적용하는 이유는 무엇입니까?

N번째 하위 선택기가 하나의 요소가 아닌 모든 요소에 스타일을 적용하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 02:54:28879검색

Why is My Nth-Child Selector Applying Styles to All Elements Instead of Just One?

N번째 하위 선택기가 작동하지 않는 이유는 무엇인가요?

n번째 하위 선택자는 형제 그룹 내의 특정 요소를 타겟팅하는 강력한 도구입니다. 그러나 효과적으로 사용하려면 한계를 이해하는 것이 중요합니다.

문제: 모든 소셜 아이콘이 동일하게 나타납니다

n번째 자식이 다음과 같은 상황을 고려해보세요. 소셜 아이콘에 배경 이미지를 추가하는 데 사용됩니다.

<code class="css">#social-links div:nth-child(1) { background-image: url('media/linkedin.svg'); }</code>

예상 동작: 첫 번째 소셜 아이콘에만 LinkedIn 배경 이미지가 있어야 합니다.
실제 동작: 모든 아이콘의 배경 이미지가 동일합니다.

이유: 요소가 아닌 형제 수 계산

n번째 하위 선택기는 요소 자체가 아닌 대상 요소의 형제 수를 계산합니다. 위 코드에서는 #social-links의 div 하위 요소 수를 계산합니다.

이 경우 div.social-logo 요소는 항상 앵커 요소의 유일한 div 하위로 존재합니다. 따라서 nth-child는 항상 1을 반환합니다. 이는 모든 요소가 동일한 배경 이미지를 받는다는 의미입니다.

해결책: 부모 요소의 형제를 대상으로 합니다.

특정 div.social을 대상으로 하려면 -logo 요소의 경우 상위 앵커 요소의 형제 요소를 대상으로 하도록 선택기를 수정해야 합니다.

<code class="css">#social-links a:nth-child(1) div { background-image: url('media/linkedin.svg'); }</code>

앵커 요소의 n번째 하위 요소를 대상으로 지정함으로써 이제 의도한 div.social-logo 요소를 올바르게 선택하고 적용합니다. 그에 따라 배경 이미지가 변경됩니다.

위 내용은 N번째 하위 선택기가 하나의 요소가 아닌 모든 요소에 스타일을 적용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.