2011-06-30 12 views
21

¿Se permite que el atributo ID en un elemento HTML esté vacío?¿Se permite que una ID esté vacía en una etiqueta HTML?

<div id=""></div> 

estoy usando una plantilla donde el ID del elemento se fija por una variable que no siempre puede tener un valor y me pregunto si esto podría causar problemas imprevistos.

EDITAR: La "variable" es en realidad una región editable (bloque) en una plantilla de Django. Esto significa que no puedo ponerle ninguna lógica condicional.

<div id="{% block id %}{% endblock %}"> 

En lugar de:

<div {% block id %}{% endblock %}> 

que tendría que ser heredados en la sub-plantilla como:

{% block id %}id="whatever"{% endblock %} 
+0

Estoy usando [ractive.js] (http://www.ractivejs.org) y tengo el mismo problema. Debe utilizar: en lugar de lo cual es un inconveniente para mí, pero estoy apegado a las reglas de la plantilla. – alexserver

Respuesta

21

Según el W3C:

ID y Los tokens de NAME deben comenzar con una letra ([A-Za-z]) a nd puede seguirse con cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_"), dos puntos (":") y puntos (".")

(Fuente: Basic HTML data types)

Esto indicaría que un valor en blanco para el atributo no es válida de acuerdo con la definición anterior.

Tratando de validar contra un atributo ID vacío devuelve lo siguiente:

sintaxis del valor de atributo no se ajustan a valor declarado

<div id="">something</div>

El valor de un atributo contenía algo eso no está permitido por la sintaxis especificada para ese tipo de atributo . Por ejemplo, el atributo "seleccionado" debe ser minimizado como "seleccionado" o escrito en su totalidad como "seleccionado =" seleccionado ""; la variante "selected =" "" no está permitida.

+0

Intentar ingresar eso en el validador W3C (http://validator.w3.org) devuelve un error. – SteeveDroz

1

No lo configuré en blanco inicialmente, solo tiene el guión (o sin embargo significa que inserta su ID) anexa un atributo al div. De esa forma su código validará, si eso significa algo para usted.

Los atributos en blanco no son válidos, pero no teniendo el atributo es válido. No debería haber ningún problema con esto, solo asegúrese de mantener sus ID únicos. Estoy seguro de que lo sabías, sin embargo.

1

No validará como documento válido.

validador W3 dará un error similar al siguiente: sintaxis del valor de atributo no se ajusta al valor declarado

también el número de identificación debe ser único. Entonces, si tienes más de uno con eso, también violaría esa regla.

4

No importa, ningún navegador se bloqueará en los ID vacíos. De todos modos, si quieres generar HTML válido, deberías generar identificaciones falsas. Si quiere generar un HTML válido de cinco estrellas, las identificaciones falsas deberían ser diferentes, por ejemplo, prefijo + contador.

+1

Supongo que siempre podría simplemente configurar alguna ID predeterminada que se use si no se proporciona ninguna. Como esta etiqueta solo aparecerá una vez por página, siempre será única. – Soviut

+1

Tu respuesta me llevó a la solución correcta, pero tuve que marcar la respuesta de @Jamie porque me dio una mejor respuesta sobre por qué los ID no eran válidos. – Soviut

Cuestiones relacionadas