7

De lo que reuní y comprendí aquí y allá (detenerme cuando estoy equivocado): selector infantil (>) funciona en IE7 + siempre que active el modo estándar con su doctype, html5 <!DOCTYPE html> se supone que haga esto.css El selector secundario (>) no funciona en IE8?

Aún así, mi css:

nav > ul > li > a 
{ 
    padding: 0.2em 2em 0.2em 2em; 
    background-color: #FAFAFA; 
} 
nav > ul > li > a:hover 
{ 
    background-color: #AFAFAF; 
} 

no parece llegar a mi html:

<!DOCTYPE html> 
... 
<body> 
<header> 
    <nav> 
     <a class="inblock valignC logo" href="/"><img src="static/img/logo.gif" /></a> 
     <!--Menu nav : LOGO | Agence | Portfolio | Equipe | Clients | Contact--> 
     <ul class="inblock valignC"> 
      <li class="inline"><a class="ie" href="/agence/">Agence</a></li> 
     ... 
     </ul> 
... 

en IE8, tengo que utilizar la clase .es dedicada añadí en targetted <a> s .

¿Alguna explicación?

Respuesta

11

Es necesario utilizar el HTML5 Shiv para las versiones de IE por debajo del 9:

<!--[if lt IE 9]> 
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script> 
<![endif]--> 
+0

gracias perfectos, investigaré esta pieza del código –

+0

Sí, es muy facil. ¡Solo póngalo al final de su sección y listo! –

1

Creo que es porque los navegadores más antiguos no tienen el elemento de navegación.

2

Es posible que no sea el selector, sino las etiquetas en sí, ya que no están definidas como etiquetas estándar en IE8 y versiones posteriores. Puede ver si este es el caso simplemente usando ul > li y ver si el selector funciona.

No hay mucho que pueda hacer al respecto, aparte de no usar etiquetas HTML5 hasta que más personas actualicen sus navegadores. Personalmente, prefiero usar <div class="nav"> por el momento.

+0

¿Solucionaría [html5shiv] (http://code.google.com/p/html5shiv/) esto? –

+2

En realidad, hay un truco JS que puede usar para que los elementos funcionen. 'document.createElement ('nav')' antes de usarlo. – Andrea

+0

Sí, eso fue,

1

No funciona porque IE8 no entiende, o 'correctamente' poner en práctica, las etiquetas HTML como <nav>.

No utilizar HTML 5 hasta el año 2015. Esto es por 2 razones:

  1. La recomendación W3C para HTML 5 no está finalizado hasta Dic 2014, a fin cualquier implementación actual del navegador es adivinar lo que lo que el documento finalizado contendrá. Código que funciona ahora, no se garantiza que funcione después de ese punto (pero probablemente lo hará). Agregar los hacks de JS en la parte superior, para que los navegadores cumplan con HTML5, agrega más problemas potenciales de compatibilidad con versiones anteriores.

  2. Para 2015, la cuota de mercado para IE8 probablemente estará en niveles mínimos, p. menos del 2-3% en ese momento, los beneficios de soportar IE8 se verán superados por los costos de no usar código compatible con HTML5.

Mientras tanto, es una buena idea usar un tipo de documento HTML 5, porque es hacia delante y hacia atrás compatible y utilizar el subconjunto de etiquetas HTML 5, que también son válidas en HTML 4 (en otras etiquetas de palabras, que son válido en HTML4 Y HTML5, que es la mayoría de ellos). Personalmente me gusta usar <div class="nav"></div> en lugar de <nav></nav> etc. etc.

Al final del día, haga lo que quiera, pero debe ser consciente de estos problemas al menos, especialmente en un mundo donde HTML5 es una palabra de moda que se usa con frecuencia y de manera inapropiada.

Cuestiones relacionadas