evolucion - que es mejor html o html5
En html5 para establecer una casilla de verificación como marcada, ¿debería usar simplemente checked(como propiedad) o checked="checked"(como atributo)? (5)
Actualmente, en nuestro complemento estamos configurando las casillas de verificación como comprobadas mediante configuración
<input type="checkbox" checked="checked" />
Esto fue para preservar la compatibilidad xhtml. Estoy más acostumbrado a configurar marcada como propiedad
<input type="checkbox" checked />
¿Cuál es la forma correcta de proceder en html5? ¿Deberíamos preocuparnos por la compatibilidad xhtml?
De acuerdo con http://www.w3.org/TR/html-markup/input.checkbox.html es un atributo
Es un atributo en cualquier caso. Y establece un valor (el mismo valor, true
) en una propiedad DOM del nodo elemento en cualquier caso.
Para la mayoría de los propósitos, no importa qué sintaxis use. Sin embargo, hay algunos puntos a tener en cuenta:
- Si utiliza HTML5 en la serialización de XML ("XHTML5"), debe usar
checked="checked"
. - En el estilo, las sintaxis no son equivalentes cuando se usan selectores de atributos (la forma más corta no coincide
[checked=checked]
), pero esto no importa en la práctica:[checked]
coincide con las casillas marcadas en ambos casos. - La sintaxis torpe
checked="checked"
es un remanente de SGML e incluida solo por compatibilidad, por lo que puede hacer que su código parezca pasado de moda (lo que rara vez importa).
Se preocupa por la compatibilidad XHTML en HTML5, si está creando documentos que usan la serialización XHTML de HTML5, ya sea exclusivamente al servir el documento con un tipo de application/xhtml+xml
mime, o al crear un documento políglota que se puede servir como application/xhtml+xml
o como text/html
(el tipo "normal" html mime).
Si solo está usando text/html
, entonces no necesita preocuparse por la sintaxis XHTML. Sin embargo, puede utilizar la sintaxis de cierre automático al estilo XML al incorporar SVG o MathML en su página. (SVG es ampliamente compatible con los últimos navegadores, MathML no tanto). También puede usar />
para terminar con elementos HTML vacíos como meta, link, input, img, etc., pero esto no tiene ningún efecto diferente de usar >
para finalizar esos elementos .
Un pequeño comentario sobre la terminología. En el marcado, en el lenguaje común, ya sea checked
o checked="checked"
es un "atributo". Una "propiedad" es otra cosa.
Checked
es un atributo booleano en HTML 5. Un verdadero valor se indica por el atributo que está presente, y un valor falso se indica por su ausencia. Si está presente, su valor debe estar vacío o configurado con el nombre de propiedad checked="checked"
. Cualquiera de estas formas es correcta:
<input type="checkbox" checked="checked" />
<input type="checkbox" checked>
https://www.w3.org/TR/html5/infrastructure.html#sec-boolean-attributes
<!-- Default to unchecked -->
<input type="checkbox">
<!-- Default to checked, XHTML -->
<input type="checkbox" checked="checked" />
<!-- Default to checked, HTML5 -->
<input type="checkbox" checked>