2009-02-24 9 views
67

HTML specHTML ID의 실질적인 최대 길이는 얼마입니까?

ID와 NAME 토큰 문자로 시작해야 말한다 ([A-ZA-Z])과 하였다 될 수 문자, 숫자 (0-9), 하이픈의 수 ("-"), 밑줄 ("_"), 콜론 (":") 및 마침표 (".")로 구성됩니다.

HTML 4의 SGML declaration이 NAMELEN에 65536 값을 사용하더라도 "고정 된 한도 사용 안함"이라고 적혀 있습니다.

하지만 브라우저, CSS 구현 및 JavaScript 툴킷은 이어야하며 지원되는 길이는 제한적으로이어야합니다. HTML/CSS/JS 응용 프로그램에서 사용하기에 안전한 최소 한계는 무엇입니까?

+2

감사 ID 및 +1을 지적 해 주셔서 감사합니다. 문자로 시작해야합니다. 과거에는 아무런 문제없이 '1', '2', '3', '4', '5'와 같은 ID를 사용했습니다. 나는 조사 관련 위젯과 상호 작용 요소를 많이 사용하며 ID 참조뿐만 아니라 편리한 '점수'속성을 위해 이와 같이 IDS를 사용합니다. 오늘 나는 정말 효과가 있어야만하는 CSS를 몇 개 만들려고 노력했다. 나는 심지어 그것을 W3C 유효성 검사기를 지나치게 돌렸고, 그것은이 문제에 대해 나에게 경고하지 않았다 ... 그러나이 포스트는했다. 그리고 지금 id = '5'를 'x5x'로 바꿨을 때 CSS가 작동합니다 ... 이제는 x를 제거하기 위해 채점 서브 루틴을 변경해야합니다! 다시 Thx. –

답변

170

방금 ​​테스트 : 1M 문자는 Chrome1, FF3, IE7, Konqueror3, Opera9, Safari3과 같은 최신 브라우저에서 작동합니다.

더 긴 ID가 기억하기 어려울 수도 있습니다.

+105

"더 긴 신분증이 기억하기 어려울 수도 있습니다." - LOL! – Josh

+12

이 사람은 10 "백만"문자를했습니다! http://stackoverflow.com/a/1496150/74585 –

+1

LOL, 와우, 조금 과장된 것 같습니다. – rectangletangle

0

학문적 인 질문 인 경우 매우 흥미 롭습니다.하지만 모범 사례가 중요하다면 이러한 사항을 스트레칭 할 필요가 없습니다. HTML 요소에 대한 데이터를 저장해야하는 경우 DOM 요소의 특성에 넣는 것이 좋습니다.

13

나를위한 실질적인 제한은 HTML/CSS로 작업하는 동안 내 머리 속에 저장할 수있는 ID입니다.

이 제한은 일반적으로 작업 한 시간과 요소의 컨텍스트에서 이름이 적합한 지에 따라 8-13 자 사이입니다.

+4

필자는 필요한 경우 접두사를 사용하여 "내부 버퍼"를 확장 할 수 있다고 덧붙였습니다. :-) –

+0

확실히 가능합니다. :) –

+9

이 질문은 여전히 ​​중요합니다. RIA의 경우 코드에 의해 시간 ID가 생성되기 때문에 고유해야하기 때문에 오래 걸릴 수 있습니다. 예를 들면 다음과 같습니다. window_2_panel_12_group_6_label_2 _... – Josh

1

때로는 매우 긴 ID로 끝나기도하지만 정확한 목적과 일치하도록 일관되게 이름을 지정합니다. 당신이 볼 수 있듯이 예를 들어

...

<div id="page"> 
    <div id="primary-content"></div> 
    <div id="secondary-content"></div> 
    <div id="search-form-and-primary-nav-wrapper"> 
     <form id="search-form"></form> 
     <ul id="primary-nav"> 
      <li id="primary-nav-about-us"></li> 
     </ul> 
    </div> 
    <a id="logo"><img /></a> 
</div><!-- /#page --> 

, 선택기 가끔 꽤 길다. 하지만 YUI 그리드처럼 작업하는 것보다 훨씬 쉽습니다. #doc, #bd, # yui-main 등과 같은 ID로 끝나는 곳입니다.

+3

내가 많이하는 일은 그 사람들의 이름을 heirachically하게하는 것이므로 div id = 'user'를 가지고있다. 그 안에는 div = id, 'user-stats', id = 'user-inventory', id = -spells '라고 말한 다음 user-stats 내에서 5 개의 div가 있다고 말할 수 있습니다. id ='user-stats-strength ', id ='user-stats-agility ', id ='user-stats-defense ', id ='user -stats-intellect ', id ='user-stats-heath '등등, 나는 그들의 이름을 기억하는 데 매우 유용하다는 것을 알았고, 또한 공백이나 낙타에 대해 명명 규칙, 즉 -s 또는 _를 유지했다. – Psytronic

관련 문제