>웹 프론트엔드 >CSS 튜토리얼 >CSS에서 `table > tr > td`가 예상대로 테이블 셀을 선택하지 않는 이유는 무엇입니까?

CSS에서 `table > tr > td`가 예상대로 테이블 셀을 선택하지 않는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-16 20:56:16645검색

Why Doesn't `table > tr > td` CSS에서 예상대로 테이블 셀을 선택하시겠습니까?
tr > td` CSS에서 예상대로 테이블 셀을 선택하시겠습니까? " />

테이블 구조에 대한 하위 선택기의 제한 사항 이해

HTML 문서 구조에서 table > tr > td 요소 간의 관계는 종종 부모-자식으로 가정됩니다. 그러나 CSS 선택기를 사용할 때 하위 선택기(>)가 예기치 않게 작동하는 이유를 이해하는 것이 중요합니다.

> tr > td 선택기는 tr 요소의 직계 후손인 td 요소를 선택해야 하는 것처럼 보일 수 있지만 실제 HTML 구조에서는 이 요소가 바로 테이블 요소의 직계 후손입니다. , 브라우저는 암시적으로 추가 tbody 요소를 도입합니다.

이는 실제 계층 구조가 다음과 같다는 것을 의미합니다. this:

table > tbody > tr > td

결과적으로 선택기 테이블 > tr > tr 요소는 테이블 요소의 직접적인 하위 항목이 아니기 때문에 작동하지 않습니다.

이 시나리오에서 td 요소를 올바르게 선택하려면 다음을 사용해야 합니다. 선택기:

table > tbody > tr > td

데모:

제공된 Fiddle에서 [하위 항목 선택기](http://jsfiddle.net/brLee/1/) , tr > td 선택기는 예상대로 작동하여 tr 요소 내의 모든 td 요소를 선택합니다. 이는 하위 선택자(>)가 간접적으로 관련된 요소를 포함하여 지정된 요소의 모든 하위 항목을 선택하기 때문입니다.

반대로, 제공되는 Fiddle [하위 선택자](http://jsfiddle.net/ brLee/), 테이블 > TR > td는 tr 요소가 table 요소의 직접적인 하위 요소가 아니기 때문에 어떤 td 요소도 선택하지 않습니다.

브라우저 동작:

HTML 문서에서 암시적 추가 tbody 요소의 동작은 테이블의 적절한 렌더링을 보장하기 위한 브라우저의 기본 동작입니다. 그러나 application/xhtml xml로 제공되는 XHTML 문서에서는 이러한 암시적 추가가 발생하지 않습니다. 따라서 테이블 >에 대해 하위 선택기(>)를 사용합니다. TR > XHTML 문서의 td는 올바르게 작동합니다.

위 내용은 CSS에서 `table > tr > td`가 예상대로 테이블 셀을 선택하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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