Pregunta

Cuando se lance IE8, ¿funcionará el siguiente código para agregar una hoja de estilo condicional?

<!--[if IE 8]>
  <link rel="stylesheet" type="text/css" href="ie-8.0.css" />
<![endif]-->

He leído informes contradictorios sobre si esto funciona con la versión beta. Espero que alguien pueda compartir su experiencia. Gracias.

¿Fue útil?

Solución

Funcionó para mí, & nbsp; tanto en el modo peculiar como en el modo de cumplimiento de estándares. Sin embargo, no funciona no cuando se cambia al modo de compatibilidad con IE8.

Otros consejos

Una cosa a tener en cuenta:

Funciona, BUT si está cargando la página / sitio red local (por ejemplo, Intranet) se cargará en IE7 modo de forma predeterminada! (actualización - localhost [*] es un especial caso, que se reproduce en modo estándar)

Esto va en contra de la declaración original de MSFT de ir ESTÁNDARES por defecto.

por ejemplo

http://127.0.0.1/mysite/mypage.php  <-- IE8 by default (updated!)
http://localhost/mysite/mypage.php  <-- IE8 by default (updated!)
http://machinename/mysite/mypage.php  <-- IE7 by default
http://192.168.100.x/mysite/mypage.php  <-- IE7 by default
http://google.com/  <-- IE8 by default

[*] - Scott Dickens [MSFT] señaló en un comentario aquí en el Blog de IE que localhost era un escenario especial en la Intranet (que se usa a menudo para desarrollar sitios de Internet), por lo tanto, se procesaría en el modo Estándar por defecto.

Para probar en qué modo se está mostrando realmente una página en IE8, puedes usar las herramientas de desarrollador o usar este código de marcador (solo funciona en IE8):

javascript:
var vMode=document.documentMode;
var rMode='IE5 Quirks Mode';
if(vMode==8){
  rMode='IE8 Standards Mode';
} else if(vMode==7){
  rMode='IE7 Strict Mode';
}
alert('Rendering in: '+rMode);

Herramientas / configuración de la vista de compatibilidad desmarca todas ellas

Gracias por tu ayuda. He descubierto la solución, aparentemente el problema era que cada hoja de estilo usara su propio atributo de título. Una vez que quité el título de todos menos la hoja de estilo principal, no hay problema.

Este es un problema extraño exclusivo de IE8, y aunque se me ha dicho que se supone que funciona de esa manera, tiene algo que ver con la "Preferencia de hoja de estilo" - solo sirve para crear problemas, ya que la solución requiere que elimines el título, lo que podría ser útil para los scripts, etc. - cuando necesitas llamar a la hoja de estilo.

En cualquier caso, no estoy seguro de si se trata de un error, o se supone que es así, pero espero que Microsoft investigue más.

Gracias

¿Por qué incluso molestarse en escribir una hoja de estilo separada para IE8?

Si ya has depurado para IE7, puedes forzar a IE8 en modo de compatibilidad, y así mostrar tu código como si IE8 fuera IE7.

Todo lo que tienes que hacer es poner esto A LA DERECHA DEBAJO de la etiqueta de la cabeza de apertura. En cualquier otro lugar y no funcionará.

Y eso es una media hora o menos de trabajo en promedio por proyecto, ¡no se necesita una depuración intensa para IE8!

Incluso Msn.com hace esto, algo irónico, ¿eh?

Recientemente escribí una publicación en el blog: http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging- on-ie8-when-you-do-have-to-get-ie-8-to-behave-like-ie7 /

IE8 se ve muy bien en comparación con IE7, tengo hojas de estilo para IE6, IE7 e IE8; al principio pensé que los comentarios condicionales no funcionaban para IE8 después de un poco de experimentación, encontré que IE8 no aplicaba algunas reglas solo porque necesitaba poner primero la clase de antepasado o padre, p. ej. tuve una clase como

.niceclass {algunas: propiedades; más: propiedades;}

funcionó solo si lo cambié por algo como:

.parentclass .niceclass {some: properties; más: properties;} or

#parentselector .niceclass {some: properties; más: properties;}

por cierto, en mi css solo para IE8, solo tengo una regla de anulación, el resto se representa casi como Firefox, ¡aunque eso no me hace abandonar FF de todos modos!

Por mi parte, quería usar bordes redondeados utilizando css. IE8 en Vista no soporta tal. Y dado que los gráficos eran para que los bordes redondeados mostraran también una bonita sombra redondeada, la página se veía terrible en IE8.

Intenté usar comentarios condicionales, pero en vano, IE8 no evaluaría la expresión de IE y, por lo tanto, no incluiría la hoja de estilo externa.

Luego eché un vistazo a ponerlo en modo de compatibilidad / compatibilidad, sin embargo, esto todavía no funcionó, ya que los hacks CSS que había usado ya no funcionaban para IE8.

Por último, pero menos, encontré un hack CSS que funciona que representará la página correctamente cuando esté en modo de compatibilidad.

* + html #test[id] { color:lime } 

Ahora, no sé si esto funciona para IE7 o inferior, por lo que tendría al menos tres diferentes hacks para cada versión de IE que desee admitir, por ejemplo,

* + html #test,
    html+body #test,
    * html body #test
    { color:lime }

Me pregunto cuál será la próxima regresión del Internet Explorer para nosotros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top