ID는 HTML / XHTML 페이지 내에서 고유해야한다는 것을 이해합니다.
내 질문은 주어진 요소에 대해 여러 ID를 할당 할 수 있습니까?
<div id="nested_element_123 task_123"></div>
나는 단순히 수업을 사용하여 쉬운 해결책을 가지고 있음을 알고 있습니다. 이 방법으로 ID를 사용하는 것에 대해 궁금합니다.
ID는 HTML / XHTML 페이지 내에서 고유해야한다는 것을 이해합니다.
내 질문은 주어진 요소에 대해 여러 ID를 할당 할 수 있습니까?
<div id="nested_element_123 task_123"></div>
나는 단순히 수업을 사용하여 쉬운 해결책을 가지고 있음을 알고 있습니다. 이 방법으로 ID를 사용하는 것에 대해 궁금합니다.
답변:
보내는 사람 번호 XHTML 1.0 규격
XML에서 조각 식별자는 ID 유형이며 요소 당 하나의 ID 유형 속성 만있을 수 있습니다. 따라서 XHTML 1.0에서 id 속성은 ID 유형으로 정의됩니다. XHTML 1.0 문서가 잘 구조화 된 XML 문서가되도록하려면 XHTML 1.0 문서는 위에 나열된 요소에서 조각 식별자를 정의 할 때 반드시 id 속성을 사용해야합니다. XHTML 문서를 미디어 유형 text / html로 제공 할 때 이러한 앵커가 이전 버전과 호환되는지 확인하는 방법에 대한 자세한 내용은 HTML 호환성 지침을 참조하십시오.
다른 사람들의 말과 달리 정답은 예입니다.
사양 선택기 이것에 대해 매우 분명하다 :
요소에 여러 개의 ID 속성이있는 경우 모든 요소는 ID 선택기의 목적을 위해 해당 요소의 ID로 처리되어야합니다. 이러한 상황은 xml : id, DOM3 Core, XML DTD 및 네임 스페이스 별 혼합을 사용하여 도달 할 수 있습니다. 지식.
편집하다
명확히하기 위해 : 예, XHTML 요소는 여러 개의 id를 가질 수 있습니다.
<p id="foo" xml:id="bar">
그러나 id
공백으로 구분 된 목록을 사용하여 동일한 속성에 여러 ID를 할당 할 수 없습니다.
This specification doesn't preclude an element having multiple IDs, if other mechanisms (e.g. DOM Core methods) can set an element's ID in a way that doesn't conflict with the id attribute.
CSS 사양에 해당하는 내용 도 찾을 수 있습니다.
id
. 명확히하기 위해 xml:id
속성 (및 실제로 기본 네임 스페이스 외부의 모든 속성)은 XHTML에서 유효하지 않습니다. 그러나 HTML5 사양을 인용 할 때 이로 인해 xml:id="bar"
자동으로 실패하지는 않습니다. 여전히이 bar
요소에 ID를 추가하여 일치시킬 수 있습니다 #bar
.
나의 이해는 항상 다음과 같습니다.
ID는 일회용 이며 하나의 요소에만 적용됩니다 ...
수업은 두 번 이상 사용할 수 있습니다 ...
아니요. 모든 DOM 요소에는 ID가 있으면 하나의 고유 한 ID가 있습니다. 다음과 같은 것을 사용하여 근사 할 수 있습니다.
<div id='enclosing_id_123'><span id='enclosed_id_123'></span></div>
그런 다음 탐색을 사용하여 원하는 것을 얻을 수 있습니다.
스타일을 적용하려는 경우 클래스 이름이 더 좋습니다.
해당 경로를 따라 가려면 중첩 된 DIV를 사용해야합니다. 또한 가능하다면 document.getElementByID ()를 실행할 때 발생할 수있는 혼란을 상상해보십시오. ID가 여러 개인 경우 어떤 ID를 가져 옵니까?
약간 관련된 주제에서 DIV에 여러 클래스 를 추가 할 수 있습니다 . 에서 Eric Myers 토론을보십시오.
getElementById();
무엇을 얻을지 지정하는 문자열이 없으면 아무것도하지 않습니까?! getElementById('foo');
ID가 foo 인 요소를 가져옵니다! 여러 ID는 여기서 중요하지 않습니다. 여전히 "foo"를 찾습니다.
Any ID assigned to a div element is unique.
However, you can assign multiple IDs "under", and not "to" a div element.
In that case, you have to represent those IDs as <span></span> IDs.
Say, you want two links in the same HTML page to point to the same div element in the page.
The two different links
<p><a href="#exponentialEquationsCalculator">Exponential Equations</a></p>
<p><a href="#logarithmicExpressionsCalculator"><Logarithmic Expressions</a></p>
Point to the same section of the page.
<!-- Exponential / Logarithmic Equations Calculator -->
<div class="w3-container w3-card white w3-margin-bottom">
<span id="exponentialEquationsCalculator"></span>
<span id="logarithmicEquationsCalculator"></span>
</div>
http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2
id 속성 은 요소에 고유 식별자를 할당합니다 (SGML 파서로 확인할 수 있음).
과
ID 및 NAME 토큰은 문자 ([A-Za-z])로 시작해야하며 그 뒤에 여러 문자, 숫자 ([0-9]), 하이픈 ( "-"), 밑줄 ( "_")이 올 수 있습니다. , 콜론 ( ":") 및 마침표 ( ".")
따라서 "id"는 고유해야하며 공백을 포함 할 수 없습니다.
실제로 렌더링되는 것은 기술적으로 항상 브라우저마다 다르기 때문에 기술적으로 그렇습니다. 대부분의 브라우저는 가능한 한 최선을 다해 CSS 사양에 아무것도 없다는 것을 알고 있습니다. 다른 인터프리터가 들어가기 전에 브라우저로 전송되는 실제 html, css, javascript 코드 만 보증합니다.
그러나 일반적으로 테스트하는 모든 브라우저가 실제로 당신을 허용하지 않기 때문에 아니오라고 말합니다. 직접 확인해야 할 경우 다음을 .html 파일로 저장하고 주요 브라우저에서여십시오. 모든 브라우저에서 javascript 함수에서 테스트 한 요소가 요소와 일치하지 않습니다. 그러나 id 태그에서 "hunkojunk"를 제거하면 모두 정상적으로 작동합니다. 샘플 코드
<html>
<head>
</head>
<body>
<p id="hunkojunk1 hunkojunk2"></p>
<script type="text/javascript">
document.getElementById('hunkojunk2').innerHTML = "JUNK JUNK JUNK JUNK JUNK JUNK";
</script>
</body>
</html>
그것은 흥미롭지 만, 내가 아는 한 대답은 확실합니다. 중첩 된 ID가 필요한 이유를 알 수 없습니다. 일반적으로 동일한 중첩 된 ID를 가진 다른 요소와 교차하기 때문에 중첩 된 ID가 필요합니다. 당신이 아무 소용이 없다면, 당신은 여전히 아주 작은 점이 있습니다.
나는 이것이 1 살이라는 것을 알고 있지만 나는 이것에 대해 궁금했고 다른 사람들이 여기서 길을 찾을 것이라고 확신합니다. 다른 사람들이 내 앞에서 말한 것처럼 간단한 대답은 '아니요'입니다. 요소는 하나 이상의 ID를 가질 수 없으며 페이지에서 ID를 두 번 이상 사용할 수 없습니다. 사용해보십시오 . 작동 하지 않는 것을 볼 수 있습니다 .
두 개의 다른 요소에서 동일한 ID를 사용하는 것에 대한 tvanfosson의 답변에 대한 응답. 내가 아는 한 ID는 다른 태그에 연결되어 있는지 여부에 관계없이 페이지에서 한 번만 사용할 수 있습니다.
정의에 따르면 ID가 필요한 요소는 고유해야하지만 두 개의 ID가 필요한 경우 실제로 고유하지 않으며 대신 클래스가 필요합니다.
클래스는 이것을 위해 특별히 만들어졌습니다. 여기에서 이해할 수있는 코드가 있습니다.
<html>
<head>
<style type="text/css">
.personal{
height:100px;
width: 100px;
}
.fam{
border: 2px solid #ccc;
}
.x{
background-color:#ccc;
}
</style>
</head>
<body>
<div class="personal fam x"></div>
</body>
</html>
아니.
https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#the-id-attribute
값은 공백 문자를 포함하지 않아야합니다.
id="a b"
<-해당 VaLuE 에서 공백 문자를 찾으십시오 .
즉, 여러 ID를 스타일 지정할 수 있습니다 . 그러나 사양을 따르는 경우 대답은 '아니요'입니다.
ID는 고유해야하므로 페이지에서 특정 ID를 한 번만 사용해야합니다. 클래스는 반복적으로 사용될 수 있습니다.
자세한 내용은 https://www.w3schools.com/html/html_id.asp 를 확인 하십시오.
나는 당신이 두 개의 ID를 가질 수 있다고 생각하지 않지만 가능해야합니다. 동일한 여권을 사용하는 두 사람과 같은 동일한 ID를 두 번 사용하는 것은 다른 경우입니다. 그러나 한 사람이 여러 개의 여권을 가질 수 있습니다. 한 명의 직원이 여러 기능을 수행 할 수있는 상황이 있기 때문에 이것을 찾고있었습니다. id = "sysadm teamcoordinator"가있는 "sysadm"과 "team coordinator"라고하면 다른 페이지에서 이들을 참조 할 수있게해서 employee.html # sysadm과 employee.html # teamcoordinator가 같은 장소로 연결될 수 있습니다. 그렇지 않으면 sysadm이 sysadm으로 유지되는 동안 팀 코디네이터 기능을 대신 할 수 있습니다 ... 그런 다음 직원 .html 페이지에서 ID를 변경하면됩니다 ...하지만 내가 말한 것처럼 작동하지 않습니다 :(