¿Qué etiquetas HTML5 puedo usar sin preocuparme por la compatibilidad del navegador?

93

Estoy creando una aplicación web para usar en PC. ¿Cuáles son las etiquetas HTML5 de las que debe mantenerse alejado para evitar problemas de compatibilidad con navegadores como IE8 y superiores?

Nota: La mayoría de las preguntas tienen entre 1 y 3 años sobre este tema.

Swagg
fuente
48
Consulte caniuse.com y html5please.com para obtener información actualizada sobre la compatibilidad del navegador.
rink.attendant.6
@engañar algún enlace para saber más sobre calzas?
Swagg
4
HTML5 Boilerplate es un buen recurso
Michael Peterson
47
En mi humilde opinión, no puede usar nada en el desarrollo web sin preocuparse por la compatibilidad del navegador ...
Uooo
2
Consulte Los tres niveles de uso de HTML5 . Las cosas de nivel 1 se pueden usar sin problemas. Las características de nivel 2 se degradan con gracia. Las funciones de nivel 3 requieren un polyfill si le preocupa la compatibilidad con navegadores más antiguos.
Mathias Bynens

Respuestas:

100

Preguntó de qué etiquetas HTML5 debe mantenerse alejado.

Bueno, algunas de las etiquetas de HTML5 que yo conozco se hicieron por razones semánticas. como el siguiente por ejemplo.

<article> <section> <aside> <nav> <header> <footer> ..ect

Es casi seguro trabajar con ellos y solo requieren un poco de CSS, por ejemplo. display: block;para que funcione normalmente en la mayoría de los navegadores, aunque en navegadores más antiguos, es decir. Internet Explorer debe crear un elemento en Javascript para que sea compatible.

Aquí hay un ejemplo.

document.createElement('article');

Establecería el <article> elemento para su uso en Internet Explorer anterior.

Para etiquetas HTML5 más avanzadas que requieren la funcionalidad de Javascript para funcionar, se encuentran algunas como las siguientes.

<audio> <video> <source> <track> <embed> And most importantly <canvas> 

Estos elementos son más difíciles de soportar / modificar en navegadores más antiguos. Aunque he incluido un enlace para cruzar polyfills de navegador en la parte inferior, aunque no los he investigado personalmente.

Por lo tanto, diría que cualquier elemento que no requiera la funcionalidad de Javascript está perfectamente bien para usar con un poco de código de soporte de navegador cruzado.

Si su orientación > IE8, entonces debería estar bien si usa un shiv.

¿Cómo llamo a los navegadores más antiguos? <IE9

El soporte del navegador para etiquetas HTML5 hoy es.

<section>, <article>, <aside>, <header>, <footer>, 
<nav>, <figure>, <figcaption>, <time>, <mark>

No son compatibles con Internet Explorer menos de 8, pero se pueden solucionar de esta manera.

CSS:

section, article, aside, header, footer, nav, figure, figcaption{
   display: block;
}
time, mark { 
    display: inline-block;
}

Javascript:

var elements = ['section', 'article', 'aside', 'header', 'footer', 'nav', 'figure', 'figcaption', 'time', 'mark'];
for( var i = 0; i < elements.length; i++ ) {
    document.createElement(elements[i]);
}

Y <audio> <video> <canvas>no son compatibles con <IE 9

El <embed>elemento tiene soporte parcial en > IE8


También debería mirar esta etiqueta.

 <meta http-equiv="X-UA-Compatible" content="IE=edge">

Esta metaetiqueta le dice a Internet Explorer que muestre la página en el modo IE más alto disponible, en lugar de entrar en modo de compatibilidad y representar la página como lo haría IE7 u 8. Más información sobre eso aquí .


Enlaces de ayuda HTML5


Para comenzar, puede consultar HTML5 BoilerPlate

Para conocer las tablas de compatibilidad con el navegador, puede consultar: http://caniuse.com/

HTML5 Shiv - https://github.com/afarkas/html5shiv

Lista de Polyfills HTML5 - https: //github.com/Modernizr/Modernizr/wiki / ...

Actualizar

Como se menciona en un comentario

Tenga cuidado con la metaetiqueta X-UA-Compatible. Si usa algo como html5 boilerplate que tiene comentarios condicionales que rodean el elemento (esto también ocurre con el html5 doctype IIRC), puede tener problemas con IE9 forzándose a sí mismo en el modo estándar IE7 incluso con la etiqueta. IE ataca de nuevo

Es posible que desee investigar esto, no tengo nada que respalde esto en este momento.

iConnor
fuente
Además, si puede especificar, ¿qué es IE más antiguo? 6,7,8?
Swagg
4
Generalmente, el IE más antiguo es <IE9
iConnor
Tenga cuidado con la metaetiqueta X-UA-Compatible. Si usa algo como html5 boilerplate que tiene comentarios condicionales que rodean el <html>elemento (esto también ocurre con el html5 doctype IIRC), puede tener problemas con IE9 forzándose a sí mismo en el modo estándar IE7 incluso con la etiqueta. IE ataca de nuevo.
cheezone
Gracias por la información, cualquier publicación de blog o alguna información que pueda agregar a la respuesta con respecto a ese problema sería bueno :)
iConnor
12

Generalmente, hay problemas.

Me han dicho que su pregunta está redactada para preguntar acerca de las etiquetas HTML 5, pero también es útil ver las nuevas funciones a la luz de cualquier Javascript que pueda encontrar o escribir.

En la práctica, el método recomendado es probar la existencia de la función en lugar de un navegador específico. El script Modernizr puede ser útil en este sentido, pero también hay informes de características indetectables en HTML5 .

Algunas características como local storagevolver a IE8.

Otros, como FileReader, requieren IE10 / Firefox21 / Chrome27

Para obtener información actualizada, pruebe http://caniuse.com

Pablo
fuente
1
Debo señalar que localStorage y fileReader no son etiquetas HTML, el OP preguntó qué etiquetas HTML5 tienen problemas de compatibilidad.
iConnor
Oh si. Existe esta gran lista de etiquetas semánticas que se están introduciendo en HTML5 como una forma de hacer que su página sea más legible por máquina y quizás más amigable con SEO [o quizás no]. Hay algunos elementos de entrada nuevos. Supongo que algunos de estos pueden tener problemas en uno o más navegadores. Creo que caniuse podría tener esa información ...
Paul
8

Escriba HTML 5 como lo haría normalmente y use Shims para garantizar la compatibilidad con navegadores más antiguos. En realidad, solo debe tener cuidado con las API de JavaScript, porque difícilmente se pueden cambiar. Si está tratando de ceñirse a la línea de base HTML 4 por compatibilidad, no tiene sentido usar HTML 5.

deceze
fuente
7
Con mucho gusto lo usaría <!DOCTYPE html>como la línea superior en lugar de esas malditas cosas largas y feas que nos impusieron en los tiempos anteriores.
Paul
Si eso es lo único que cambia entre sus documentos HTML 4 y "HTML 5" ... ¿cuál es el punto? :)
diciembre
4

Para una comparación rápida de qué etiquetas están disponibles en qué navegadores y qué nivel de soporte para cada etiqueta, html5test.com es un gran recurso.

Burhan Khalid
fuente
2

Está buscando una matriz de compatibilidad HTML5

http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5)

bradgonesurf
fuente
2
Tenga en cuenta: "La precisión fáctica de este artículo puede verse comprometida debido a información desactualizada. Actualice este artículo para reflejar los eventos recientes o la información disponible recientemente. (Marzo de 2013)"
gersande
1
Sí, eso es posiblemente cierto, pero en general en Google html5 compatability, estoy seguro de que hay muchos recursos.
bradgonesurfing
2

Además, para obtener la mejor compatibilidad entre navegadores, le sugiero que utilice este reset.css creado por Eric Meyer. http://meyerweb.com/eric/tools/css/reset/ Esto hace que los elementos que difieren de un navegador a otro, se comporten igual en todos los navegadores.

Pacuraru Daniel
fuente