2010-06-03 11 views
15

¿Qué tan bien se degradan las nuevas etiquetas de diseño en HTML5? ¿Cuáles son los peligros al usarlos? (No estoy hablando de <video> - He visto código de reserva específico para ello).Problemas de degradación para etiquetas semánticas HTML5 (artículo, pie de página, encabezado)

Específicamente, en el caso de algo así como

<html> 
<head></head> 
<body> 
<header> 
<h1>Talking Dogs</h1> 
<b><p>Humans aren't the only talkers!</p></b> 
</header> 
<article> 
<p>Ever encountered a talking dog? I have.</p> 
<p>It all happened one day as I was walking down the street...</p> 
</article> 
<footer> 
© 2009 Woofer Dog Corporation 
</footer> 
</body> 
</html> 

haría con <header>, <article> o <footer> causa ningún problema navegador? ¿Degradan a <div> en navegadores no compatibles automáticamente? O si los incluyo, ¿debería incluirlos solo para el significado semántico, y no para el estilo de CSS o scripting DOM?

+0

(Código tomado de http://www.quackit.com/html_5/tags/html_footer_tag.cfm) – emailq

Respuesta

33

Siempre que use html5shiv para manejar IE, funcionará bien.

El navegador tratará todas las etiquetas desconocidas (incluidas las etiquetas HTML5) como elementos normales en línea.
debe incluir la siguiente regla CSS:

article, aside, figure, footer, header, hgroup, 
menu, nav, section { display: block; } 
+1

Pero luego está el problema de si el usuario ha activado JavaScript o no ... – newyuppie

+1

@new: Es poco probable que los usuarios de IE deshabiliten Javascript (excepto ESC). – SLaks

+25

Si una persona usa IE a propósito y tiene javascript deshabilitado a propósito, su mala experiencia de Internet es su propia culpa. Es como apagar el monitor y esperar poder ver el cursor del mouse. –

1

Para la presentación que va a utilizar CSS de todos modos, así que en realidad no importa si el navegador entiende la propia etiqueta.

+0

por lo tanto, si estilo pie de página {display: block; background-color: pink;} funcionará en todos los navegadores, incluso en los que realmente no saben qué es el pie de página. – emailq

+1

"no saber la etiqueta" significa básicamente "no saber cómo mostrar la etiqueta de manera predeterminada", si la reemplaza con CSS personalizado, el navegador sabrá cómo mostrarla. Tenga en cuenta que CSS funciona incluso con XML, donde puede tener etiquetas totalmente personalizadas. – vartec

+0

Sí, funcionará, siempre que agregue http://html5shiv.googlecode.com/svn/trunk/html5.js – SLaks

0

HTML 5 Las etiquetas no son compatibles en IE, las etiquetas aún están inactivas. Para activar las etiquetas semánticas HTML5 en IE, use la siguiente secuencia de comandos dentro de su sección de encabezado.

<!--[if IE]> 
<script type="text/javascript"> 
(function(){ 
var html5elmeents = "address|article|aside|audio|canvas|command|datalist|details|dialog|figure|figcaption|footer|header|hgroup|keygen|mark|meter|menu|nav|progress|ruby|section|time|video".split('|'); 
for(var i = 0; i < html5elmeents.length; i++){ 
document.createElement(html5elmeents[i]); 
} 
} 
)(); 
</script> 
<![endif]--> 
+0

Probado, y funciona (IE9/Win7). Pregunta: ¿Cuáles son las ventajas de este script sobre html5shiv? –

+0

@ james.garriss IE9 + admite las etiquetas semánticas sin este hack de JavaScript. Este código es para IE8 y abajo. Para responder a su pregunta, HTML5shiv y esto hacen exactamente lo mismo: 'crear' los elementos usando el argumento createElement. Con JS desactivado, esto no sucederá, pero JS casi se basa en estos días. – DylRicho

Cuestiones relacionadas