2009-02-24 21 views
67

El HTML spec dice¿Cuál es la longitud máxima práctica para la identificación HTML?

ID y NAME fichas deben comenzar con una letra ([A-Za-z]) y puede ser seguido por cualquier número de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_"), dos puntos (":") y puntos (".").

Y aunque el SGML declaration de HTML 4 usa el valor 65536 para NAMELEN, indica "Evite los límites fijos".

Pero seguramente los navegadores, las implementaciones CSS y los kits de herramientas de JavaScript deben tener algunos límites en la longitud que admiten. ¿Cuál es el límite más pequeño que es seguro usar en una aplicación HTML/CSS/JS?

+2

Gracias y +1 por señalar esas identificaciones debe comenzar con una letra. He utilizado IDs como '1', '2', '3', '4', '5' en pasado sin problema. Hago muchos widgets y elementos interactivos relacionados con la encuesta y uso el IDS como este hecho para un conveniente atributo 'puntuación' así como para la referencia de ID. Hoy estaba tratando de obtener algo de CSS que realmente debería haber funcionado. Incluso corrí más allá del validador W3C y no me alertó sobre este problema ... Pero este post lo hizo. Y ahora cuando cambié id = '5' a 'x5x' el css funciona ... ¡Ahora solo tengo que cambiar la subrutina de puntuación para quitar las x! Thx otra vez. –

Respuesta

170

Acaba de probar: 1M caracteres funciona en todos los navegadores modernos: Chrome1, FF3, IE7, Konqueror3, Opera9, Safari3.

Sospecho que las identificaciones aún más largas podrían ser difíciles de recordar.

+105

"Sospecho que aún las ID más largas podrían ser difíciles de recordar". - ¡LOL! – Josh

+12

¡Este tipo ha hecho 10 "millones" de caracteres! http://stackoverflow.com/a/1496150/74585 –

+1

LOL, y vaya que parece ser un poquito exagerado. – rectangletangle

0

Si se trata de una pregunta académica, es bastante interesante ... pero en lo que respecta a las mejores prácticas, no debería necesitar - o querer - extender esto. Si necesita almacenar datos sobre un elemento HTML, es mejor ponerlo en un atributo en el objeto DOM.

13

Un límite práctico, para mí, sin embargo es una ID larga que puedo almacenar en mi cabeza durante el tiempo que estoy trabajando con el HTML/CSS.

Este límite suele ser de entre 8 y 13 caracteres, dependiendo de cuánto tiempo he estado trabajando y si los nombres tienen sentido en el contexto del elemento.

+4

Añadiría que es posible ampliar el "buffer interno" usando prefijos, si es necesario. :-) –

+0

Es ciertamente posible. :) –

+9

Esta pregunta todavía es muy importante, porque con los RIA, muchas veces los ID se generan por código, y para ser únicos, pueden ser largos; como un ejemplo: window_2_panel_12_group_6_label_2 _... – Josh

1

A veces voy a terminar con ID muy largos, pero los nombro constantemente para que coincida con su propósito exacto.

Por ejemplo ...

<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 --> 

Como se puede ver, los selectores son en ocasiones bastante largo. Pero es mucho más fácil en mi humilde opinión que trabajar con algo como grillas YUI.css donde terminas con IDs como #doc, #bd, # yui-main, etc.

+3

Lo que hago mucho es nombrarlos heiránicamente, así que tenga una div id = 'usuario', entonces dentro de eso puedo tener tres divs, id = 'user-stats', id = 'user-inventory', id = 'user -spells ', luego diga dentro de user-stats que podría tener 5 divs, id =' usuario-stats-strength ', id =' user-stats-agility ', id =' usuario-estadísticas-defensa ', id =' usuario -stats-intellect ', id =' user-stats-heath ', etc., que me resulta muy útil para recordar sus ids, siempre que mantenga las convenciones de nomenclatura, es decir, -'s o' de espacios o camelCase. – Psytronic

Cuestiones relacionadas