html - only - ¿Funcionará con IE8 con comentarios condicionales?
media query internet explorer (7)
Cuando se lanza 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.
Funcionó para mí, tanto en modo peculiar como en modo de cumplimiento de normas. Sin embargo, no funciona al cambiar al modo de compatibilidad IE8.
Herramientas / Configuración de vista de compatibilidad
desmarcarlos a todos
Gracias por tu ayuda. Descubrí la solución, aparentemente el problema era que cada hoja de estilo utilizara su propio atributo de título. Una vez que quité el título de todas excepto la hoja de estilo principal, no hay problema.
Este es un problema extraño exclusivo de IE8, y aunque me han dicho que se supone que debe funcionar de esa manera, algo relacionado con "Preferencia de estilo de hoja de cálculo", solo sirve para crear problemas ya que la solución requiere que elimines el título, que podría ser útil cuando scripts, etc., cuando necesita llamar a la hoja de estilos.
En cualquier caso, no estoy seguro si esto es un error, o se supone que es de esa manera, pero espero que Microsoft investigue más.
Gracias
¿Por qué molestarse en escribir una hoja de estilos separada para IE8?
Si ya depuró IE7, puede forzar IE8 al modo de compatibilidad, y así mostrar su código como si IE8 fuera IE7.
Todo lo que tienes que hacer es poner esto DERECHO ABAJO la etiqueta de la cabeza de apertura. En cualquier otro lugar y no funcionará.
Y entonces eso es una media hora o menos de trabajo en promedio por proyecto, ¡no es necesaria una depuración intensa para IE8!
Incluso Msn.com hace esto, algo irónico, ¿eh?
Escribió una publicación en el blog recientemente: http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging-on-ie8-when-you-dont-have-to-or-get- ie8-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 el ancestro o la clase padre, por ejemplo, tenía una clase como
.niceclass {some:properties;more:properties;}
funcionó solo si lo cambié por algo como:
.parentclass .niceclass {some:properties;more:properties;}
o
#parentselector .niceclass {some:properties;more:properties;}
Por cierto, en mi css de 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 usando css. IE8 en Vista no es compatible con tales. Y dado que los gráficos eran para que los bordes redondeados mostraran una bonita sombra redondeada también, la página se veía terrible en IE8.
Traté de usar comentarios condicionales, pero fue en vano, IE8 no evaluó la expresión si IE y por lo tanto no incluiría la hoja de estilo externa.
Luego, eché un vistazo a ponerlo en modo peculiar / compatibilidad, sin embargo, esto todavía no funcionaba, ya que los hacks de CSS que había usado ya no funcionaban para el IE8.
Por último, encontré un hack de CSS de trabajo que renderizará 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 hacks diferentes para cada versión de IE que quiera admitir, ee
* + html #test,
html+body #test,
* html body #test
{ color:lime }
Me pregunto cuál será la próxima regresión de Internet Explorer para nosotros.
Una cosa a tener en cuenta:
Funciona, PERO si está cargando la página / red local del sitio (por ejemplo, Intranet) se cargará en modo IE7 de forma predeterminada. (update - localhost [*] es un caso especial, que se procesa en modo estándar)
Esto va en contra de la declaración original de MSFT de ir ESTÁNDARES por defecto.
p.ej
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 IE Blog que localhost era un escenario especial en la Intranet (a menudo utilizado para desarrollar sitios de Internet), por lo tanto, se renderizaría en modo Estándares por defecto.
Para probar en qué modo se está procesando realmente una página en IE8, puedes utilizar las herramientas de desarrollo o usar este código de marcador de marca (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);