> 웹 프론트엔드 > CSS 튜토리얼 > 여러 HTML 요소가 동일한 ID를 공유하고 여전히 CSS 선택기에 응답할 수 있습니까?

여러 HTML 요소가 동일한 ID를 공유하고 여전히 CSS 선택기에 응답할 수 있습니까?

DDD
풀어 주다: 2024-12-19 15:09:09
원래의
249명이 탐색했습니다.

Can Multiple HTML Elements Share the Same ID and Still Respond to a CSS Selector?

CSS 선택기의 요소 ID 및 다중 응답

HTML에서 각 요소는 문서 내에서 고유한 ID 속성을 가져야 합니다. 그러나 일반적인 질문이 생깁니다. 여러 요소가 동일한 ID 값을 공유하고 단일 CSS ID 선택기에 응답할 수 있습니까?

W3C 문서

W3C 문서에 따르면, "두 개의 ID 속성은 동일한 값을 가질 수 없습니다. ID 속성을 사용하여 해당 요소를 고유하게 식별할 수 있습니다." 이는 여러 요소에 동일한 ID를 사용하는 것이 유효한 관행이 아님을 의미합니다.

브라우저 동작

W3C 권장 사항에도 불구하고 브라우저는 종종 유효하지 않은 HTML을 허용하고 이를 처리하려고 시도합니다. 그것. 예를 들어 다음 예에서는

#red {
  color: red;
}

<p>
로그인 후 복사

두 단락이 동일한 ID를 공유하더라도 빨간색으로 표시됩니다. 이는 브라우저가 개발자의 의도를 추측하고 그에 따라 유효하지 않은 HTML을 해석하여 "조용히 실패"하려고 하기 때문에 발생합니다.

위험 및 제한 사항

브라우저가 페이지를 올바르게 렌더링할 수 있지만 위 시나리오에서 HTML 사양을 벗어나면 예상치 못한 부작용이 발생할 수 있습니다. 예를 들어 document.getElementById('red')를 사용하면 일치하는 첫 번째 요소만 반환됩니다. 또한 일관성을 보장하려면 다양한 브라우저에서 테스트하는 것이 중요합니다.

CSS 선택기에 동일한 ID를 사용하지 않는 것이 좋습니다

여러 요소에 동일한 ID를 사용하지 않는 것이 가장 좋습니다. 대신 비슷한 스타일을 공유하는 요소를 대상으로 하는 클래스 이름을 사용하는 것이 좋습니다. 클래스 이름은 이러한 목적을 위해 특별히 설계되었으며 각 요소가 고유한 식별자를 갖도록 보장합니다.

동일한 ID를 가진 여러 요소에 대한 대안

동일한 요소를 여러 개 선택하는 경우 ID는 반드시 필요합니다. 속성 선택기 사용을 고려하세요.

document.querySelectorAll('p[id="red"]');
로그인 후 복사

그러나 이 접근 방식은 Internet Explorer 7 및 아래.

위 내용은 여러 HTML 요소가 동일한 ID를 공유하고 여전히 CSS 선택기에 응답할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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