2012-01-02 19 views
10

Me preguntaba si hay una forma de hacer que el código html5 sea visible en Internet Explorer 7 o menos.Cómo usar HTML5 en IE 7?

Por ejemplo

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

En Internet Explorer 7, la cabecera no se muestra en absoluto.

Encontré una solución here, una secuencia de comandos de habilitación de IE HTML5, que crea los elementos html5 con javascript. Pero lo que ocurre es que la etiqueta <header> no se ve del todo como lo hace en otros navegadores.

Así que mi pregunta es, ¿es demasiado pronto para usar HTML5 todavía o cómo puedo hacerlo trabajando en varios navegadores?

+0

el hecho de que no se ve igual en IE como el otro mo dern browsers es cierto en todos los casos de todos modos. Tener que ajustar las cosas para que se vea igual en IE es una parte de la vida normal y cotidiana. – Rob

+0

La frase "el encabezado no se muestra en absoluto" no es correcta. IE 7 ignora las etiquetas, no el contenido. Entonces, el contenido ("algo") se muestra como tal. El * estilo * del contenido es un problema diferente. –

Respuesta

12

Este (verdaderamente) poco increíble de Javascript debe cumplir con el 100% de sus necesidades de compatibilidad de HTML5:

http://www.modernizr.com/

0

Intente utilizar chromeframe - http://code.google.com/chrome/chromeframe/

Por sí mismo aunque no se puede utilizar la mayoría de las nuevas características de HTML5 fresco con IE7. Simplemente no está implementado en el navegador simple y llanamente.

+1

Gracias, pero los usuarios necesitan instalar esto cuando visitan mi sitio web, ¿o no? No creo que sea una buena idea, nadie lo hará. – phpheini

5

IE < 9 no reconoce los elementos HTML5 y no los generará. Así que utilizo este bit de JS para hacer la generación:

var e = ("abbr,article,aside,audio,canvas,datalist,details, 
figure,footer,header,hgroup,mark,menu,meter,nav,output, 
progress,section,time,video,figcaption,summary").split(','); 

for (var i = 0; i < e.length; i++){ 
    document.createElement(e[i]); 
} 

utilizo este comentario condicional para comprobar si se necesita para ejecutar la secuencia de comandos

<!--[if lt IE 9]> 
    <script src="js/html5_createElement_for_IE.js"></script> 
<![endif]--> 

Por supuesto, necesitará el estilo de las etiquetas para IE < 9, pero lo necesitaría de todos modos.

+0

¿por qué no están 'figcaption' y' summary' en esa lista? – Alohci

+0

Eso fue un descuido, @Alohci. Gracias por mencionarlo. Editado mi respuesta (y mi script!). –

+0

Hay muchas bibliotecas para hacer esto, incluyendo Modernizr y Google Shiv, pero esencialmente esto es lo que sucede bajo el capó. – superluminary

0

Compruebo si el cliente solicitante admite el tipo de aplicación/xhtml + xml mime (es parte del encabezado aceptado que ha enviado la solicitud).

Si no es así, entonces le envío al cliente una versión de la página usando nodos div en lugar de la mayoría de los nodos semánticos html5.

6

Hay dos cosas importantes a considerar antes de usar HTML5;

  1. Público objetivo (con su elección navegador)
  2. HTML5 características útiles en su sitio.

Si está seguro de que muchos de sus usuarios están en IE8 y a continuación, se debe evitar el uso de HTML5 casi en su totalidad.

Por lo tanto, cuando dice "es demasiado pronto para usar HTML5 todavía", la respuesta es que depende de su base de usuarios. IE tiene un buen soporte para HTML5 solo a partir de la versión 9 y superior.

No hay forma de que pueda hacer que las características avanzadas de HTML5 funcionen en IE7/8 ... El html5.js al que usted se refiere solo hace que su CSS "no ignore" ningún elemento HTML5 y aplique el estilo ... Lo no hacer nada más que eso ..

para todos los principales el apoyo del navegador y la puntuación, se puede extraer html5test.com

Aparte de esto, también se puede comprobar un tutorial explica muy bien en HTML5 llamado como DesignMobileWeb disponible en http://itunes.apple.com/in/app/designmobileweb/id486198804?mt=8

Por favor, recuerde que yo Si va a tener un sitio básico, se debe evitar el uso de HTML5. Debe considerar HTML5 solo si planea usar Almacenamiento local, Acceso sin conexión y Formularios HTML5 para dispositivos móviles, etc.

1

Las versiones de IE < 9 no mostrarán los elementos que no reconocen, por lo que los nuevos elementos HTML5, encabezado , etc. están fuera de la lista. Otros navegadores representan elementos no reconocidos, pero sin estilo.

La forma de evitar esto es "mostrar" los nuevos elementos a IE arrojándolos al DOM directamente usando JavaScript. Solo tiene que hacer esto una vez en cada vista de página.

Las dos formas estándar de hacer esto son:

Modernizr también hace un montón de otras cosas que hacer con la detección de características .

Cuestiones relacionadas