więc byłem bawiąc się tym kalendarzowego-owski thingy na trochę:Zmuszanie IE8 rerender/repaint: Przed/Po elementami pseudo
- siatki div (naśladując tabeli)
- unosić nad komórką tabeli wyświetlana jest etykieta narzędzi z 2 ikonami, z których każda składa się z elementu div z: przed i: po elementach
- Ikony zmieniają kolor w zależności od koloru komórki i jej poprzedniego rodzeństwa (klasa kolorów komórki jest stosowana do ikony) .
Rozebrani skrzypce: http://jsfiddle.net/e9PkA/1/
Działa to dobrze, ale w każdej przeglądarce IE8 i poniżej (LTE IE 7 i nigdy nie przyjaciele, ale IE8 byłoby miło mieć).
IE8 zauważy zmianę classnames i aktualizuje kolor DIV odpowiednio ale zupełnie ignoruje zmiany kolorów implikowane przez: before i: after deklaracji, np:
.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;
}
W ryba powyżej, before /: po tym, jak elementy są kolorowane dokładnie jeden raz: przy pierwszym wyświetleniu etykiety narzędzia.
W innej wersji aktualizowałoby się za każdym razem, gdy wyjęłabym mysz z "stołu" div, ale nie, jeśli podpowiedź jest ukryta po najechaniu "div" komórki.
Próbowałem repelts wymuszających siłę, dodając/usuwając inne klasy do/z elementu/jego rodziców/ciała, edytując/uzyskując atrybuty stylu i cokolwiek, więc myślę, że to nie jest twój średni problem odświeżania.
Czy jest jakiś hak JS, który to naprawia i wymusza: przed /: po aktualizacji?
Jestem zarówno w szoku i zaskoczony. Dziękuję Ci. – fdo
Bez obaw - to dość dziwne! – lnrbob
Chciałbym móc powtórzyć tę odpowiedź wiele razy. – meetamit