2010-12-15 7 views
66

Me parece recordar la mayoría de los atributos (tal vez todos) en las versiones anteriores de HTML (antes de HTML5) requerían atributos para tener valores, como readonly="readonly".HTML5: es autofocus = "autofocus" o autofocus

¿Esto es cierto para HTML5 y el atributo autofocus?

+1

posible duplicado de http://stackoverflow.com/questions/1033944/what-values-can-appear-in-the-selected-attribute-of-the-option-tag ya que ambos son sobre atributos booleanos (no marcados) –

+0

Estoy de acuerdo en que son similares, pero ligeramente diferentes, ya que están preguntando sobre diferentes atributos. –

+1

autofocus solo funciona. lo probé en FF, Opera y Chrome ... –

Respuesta

72

En HTML, se utilizan los atributos booleanos con o sin valores como desee. Un booleano, para W3C, como autofocus se puede escribir así autofocus o autofocus="autofocus" o también autofocus="".

Si no quiere el enfoque automático simplemente no lo escriba.

Creo que está confundido porque XHTML requiere valores para todos los atributos: attributes="values".

Aquí hay alguna información sobre el uso del atributo booleano en HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

+11

+1 por mencionar XHTML. La conformidad XML de XHTML es la única razón por la que alguna vez ha habido un 'disabled =" disabled "'. Lo mismo ocurre con las etiquetas de cierre. En HTML, no todas las etiquetas deben estar cerradas (por ejemplo, br o input), pero como XHTML debe ser XML válido, también es necesario cerrar las etiquetas. –

21

No, es suficiente para especificar el atributo en sí. Fue de esa manera también en HTML 4.

Una serie de atributos son atributos booleanos. La presencia de un atributo booleano en un elemento representa el valor verdadero, y la ausencia del atributo representa el valor falso.

Si el atributo está presente, su valor debe ser la cadena vacía o un valor que es una coincidencia insensible a mayúsculas y minúsculas ASCII para el nombre canónico del atributo, sin espacios en blanco iniciales o finales.

Ejemplo:

<label><input type=checkbox checked name=cheese disabled> Cheese</label> 
+9

Le di a Tim la respuesta aceptada ... necesita el representante más que tú :) –

+0

Tim también fue más simple – aWebDeveloper

30

Citando la especificación HTML5 y expandir un poco en Pekka:

http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute:

El atributo autofocus es un atributo booleano.

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes:

La presencia de un atributo booleano en un elemento representa el valor verdadero, y la ausencia del atributo representa el valor falso.

Si el atributo está presente, su valor debe ser la cadena vacía o un valor que es una coincidencia insensible a mayúsculas y minúsculas ASCII para el nombre canónico del atributo, sin espacios en blanco iniciales o finales.

Conclusión:

Los siguientes son válidos , equivalentes y verdadero:

<input type="text" autofocus /> 
<input type="text" autofocus="" /> 
<input type="text" autofocus="autofocus" /> 
<input type="text" autofocus="AuToFoCuS" /> 

Los siguientes son válidos :

<input type="text" autofocus="0" /> 
<input type="text" autofocus="1" /> 
<input type="text" autofocus="false" /> 
<input type="text" autofocus="true" /> 

La ausencia del atributo es la única sintaxis válida para falsa:

<input type="text"/> 

Recomendación

Si se preocupan por escrito XHTML, utilice autofocus="autofocus", ya <input autofocus> no es válido y otras alternativas son menos legible. De lo contrario, solo use <input autofocus> ya que es más corto.

Cuestiones relacionadas