así que he estado jugando con esta cosita calendario-ish para un poco:Forzar a IE8 regenere/repintado: antes /: después de pseudo elementos
- cuadrícula de divs (imitando una mesa)
- cernido sobre una celda de tabla muestra una información sobre herramientas con 2 iconos cada uno que consta de un div con: before y: after elements
- Los iconos cambian de color según el color de la celda y el de su hermano anterior (la clase de color de la celda se aplica al icono) .
Pelado abajo violín: http://jsfiddle.net/e9PkA/1/
Esto funciona bien en todos los navegadores, pero IE8 y por debajo (IE lte 7 Y nunca amigos, pero IE8 sería bueno tener).
IE8 nota el cambio de nombres de clases y actualiza color de los divs' en consecuencia, pero ignora por completo los cambios de color que implica el: before y: after declaraciones, por ejemplo:
.wbscal_icon_arrival:before {
width: 12px;
height: 4px;
left: -8px;
top: 6px;
background-color: silver;
}
.wbscal_icon_arrival.wbscal_full:before {
background-color: #ff0000 !important;
}
En el violín anterior, el: antes /: después de que los elementos se colorean exactamente una vez: la primera vez que se muestra la información sobre herramientas.
En otra versión, se actualizaba cada vez que sacaba el mouse de la div "tabla", pero no si la información sobre herramientas está oculta al pasar el borde div de una "celda".
He intentado forzar el repintado agregando/eliminando otras clases del/de los elementos/sus padres/el cuerpo, editando/accediendo a los atributos del estilo y demás, así que supongo que no es un problema de repintado promedio.
¿Hay un truco JS que corrige esto y fuerza: antes/después de actualizar?
soy tanto conmocionado y sorprendido. Gracias. – fdo
No se preocupe, ¡es bastante extraño! – lnrbob
Ojalá pudiera votar esta respuesta varias veces. – meetamit