> 웹 프론트엔드 > CSS 튜토리얼 > `h3:nth-child(1):contains(\'a\')`가 예상대로 작동하지 않는 이유는 무엇입니까?

`h3:nth-child(1):contains(\'a\')`가 예상대로 작동하지 않는 이유는 무엇입니까?

DDD
풀어 주다: 2024-11-29 16:02:11
원래의
241명이 탐색했습니다.

Why Doesn't `h3:nth-child(1):contains('a')` Work as Expected?

선택기 h3:nth-child(1):contains('a') 비효율성

명백한 구문에도 불구하고 선택기 h3은 다음과 같습니다. nth-child(1):contains('a')가 의도한 대로 수행되지 않습니다. function.

고급설정

추가 조사 결과 h3:nth-child(1)이 상위 컨테이너 내의 첫 번째 h3 요소를 올바르게 대상으로 삼는 것으로 나타났습니다. 그러나 원래 CSS3 기능으로 의도된 :contains() 선택기가 CSS 사양에서 생략되었기 때문에 h3:nth-child(1):contains('a')는 결과를 생성하지 않습니다.

: contain()은 특정 텍스트 패턴을 포함하는 요소와 일치하도록 설계되었습니다. 불행하게도 그 기능 방식은 브라우저 성능에 문제를 일으키고 과도한 선택 문제를 야기했습니다. 예를 들어 :contains()를 사용하여 요소를 일치시키면 모든 상위 요소도 일치하므로 범용 선택기나 특정 스타일 속성과 결합하면 예상치 못한 동작이 발생할 수 있습니다.

대체 접근 방식

적절한 CSS 선택기 대안이 없기 때문에 원하는 결과를 얻으려면 다른 방법이 필요합니다. HTML 구조를 수정하거나 jQuery의 :contains() 구현을 활용하는 방법을 살펴볼 수 있습니다.

  • h3 요소를 상위 요소 내의 첫 번째 하위 요소로 선택하고 텍스트에 'a'가 포함되어 있습니다.

jQuery 또는 Selenium RC 고려 사항

jQuery 및 Selenium RC의 경우 Selenium RC 사용자인 경우:contains()는 Sizzle 선택기 엔진에서 구현되어 CSS3 사양과 유사한 기능을 제공합니다. 그러나 예상치 못한 선택을 피하기 위해 이 선택기를 신중하게 사용하는 것이 좋습니다.

정제

마지막으로 h3:nth-child(1)는 h3으로 대체될 수 있습니다. :first-child CSS2 선택기로 향상된 브라우저 호환성을 제공합니다.

위 내용은 `h3:nth-child(1):contains(\'a\')`가 예상대로 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿