Es 2016, y mucho ha cambiado en los 5 años desde que se hizo esta pregunta, por lo que algunas respuestas aquí están desactualizadas. Con esto, los beneficios de usar los nuevos (y no tan nuevos) elementos HTML5.
Riqueza semántica e intención
¿A alguien le importa realmente el 5% de las personas que mantienen JavaScript deshabilitado?
Cómo deshabilitar las transiciones de Slider Revolution
¿Hay algún buen complemento de WordPress / WooCommerce / Shopify para el diseño de productos de indumentaria?
¿Cuál es una buena herramienta para convertir PPT a video?
¿Cuál es el precio general para un sitio web con aproximadamente 4-6 páginas creadas por un diseñador web sin un título y con aproximadamente 2-3 años de experiencia?
elementos
carecen deliberadamente de significado, por lo que el uso de los nuevos elementos como están destinados a ser utilizados agrega significado, estructura y previsibilidad a nuestros documentos HTML.
Toma este ejemplo:
...
El único elemento útil para un consumidor en ese ejemplo es el ancla. Ahora compara eso con esto:
Acme Inc.
...
Este autor tiene intenciones. Aquí están declarando explícitamente que el enlace en
es el encabezado más importante de la página. Y está contenido dentro del encabezado lógico de la página. Y este encabezado es parte de la parte principal de la página.
Un consumidor como un rastreador puede poner énfasis adicional en los elementos del encabezado dentro de un documento. Este documento atiende a dichos consumidores.
Brevedad, simplicidad
En lugar de usar clases e ID para identificar
s, puede usar nombres de elementos para diferenciar elementos. Vas a reducir los atributos superfluos, aligerando tu HTML.
Además, ¿alguna vez has hecho esto con comentarios HTML?
No se requieren más comentarios de cierre: ¡las etiquetas de cierre hablan por sí solas!
Baja especificidad y ganchos de estilo
Considere los siguientes ejemplos:
#principal {} #header {}
…y…
principal {} encabezado {}
Los selectores de ID y clase son exponencialmente más específicos que los selectores de elementos. Vas a agregar mucho peso innecesario a tus selectores.
Hablando de semántica nuevamente, también hay algo en la relación entre estos nuevos elementos HTML5. Dependiendo de dónde se encuentre el
, eso cambia su significado. Pero aún podemos mantener nuestra especificidad MUCHO más baja que seleccionándolas a través de ID o clases. p.ej
encabezado {/ * Estilo genérico * /} cuerpo> encabezado {/ * Encabezado del sitio * /} main> header {/ * Encabezado de página * /} artículo> encabezado {/ * Artículo encabezado * /} section> header {/ * Encabezado de sección * /}
En soporte de navegador
La falta de compatibilidad con el navegador ya no es una preocupación. Ver: ¿Puedo usar … Tablas de soporte para HTML5, CSS3, etc.
Aún deberá hacer algunas cosas para admitir el nuevo elemento . Podría ser tan simple como agregar lo siguiente a su CSS:
main {display:block;}
… o al incluir una cuña para incluirlo en el DOM.