Todos los navegadores proporcionan una forma de ver las reglas de una hoja de estilo usando JavaScript e insertar dinámicamente nuevas reglas. Normalmente, IE devuelve "desconocido" para cualquier cosa que no admita, por ejemplo; un div p:first-child
cambiaría a div p:unknown
, y un p a[href]
se devolvería por completo como "DESCONOCIDO". Afortunadamente, IE reconoce: pase el mouse sobre algo con lo que está familiarizado y lo deja en paz.
IE también es compatible con el llamado behaviors
; ambas funcionalidades predefinidas, como carga de contenido dinámico o almacenamiento persistente de datos, así como comportamientos personalizados que puede compilar en un archivo .htc o .hta. Estos comportamientos están vinculados a nodos html a través de css, y "mejoran" los nodos que son seleccionados por el selector de una regla con el comportamiento dado.
Combinando lo anterior, debería ser posible crear un comportamiento que busque en los estilos las reglas que no admite IE y engañar a los elementos afectados para que apliquen los estilos asociados de otra forma. Los pasos involucrados en esto son algo así como:
Buscar todas las hojas de estilo para: vuelo estacionario gobierna IE no soporta, insertar una nueva regla de IE hace de soporte, como una con los nombres de clase, y, finalmente, estableció la escritura eventos para cambiar los nombres de clase. De esta manera,: hover,: active y: focus puede ser compatible, y como desarrollador no tiene que hacer nada excepto incluir el comportamiento. Todo lo demás se ejecuta en automático completo.
A diferencia de las versiones 1 y 2, la versión 3 también es compatible con html (ajax) agregado dinámicamente. La diferencia es que 1 y 2 buscaron activamente elementos afectados en la carga de la página (por lo que solo una vez), mientras que 3 usa expresiones para permitir que los nodos realicen una devolución de llamada ellos mismos.
Puede leer mas sobre esto here
http://msdn.microsoft.com/en-us/library/ie/ms531018%28v=vs.85%29.aspx – user123444555621