Rozmiar komórek nie jest przeliczany po zmianach w Operze
Opera potrafi ignorować zmiany szerokości komórek tabeli dokonane przez DHTML, szczególnie gdy szerokości podane są w procentach.
Rozwiązanie
- Podawać wymiary w pixelach (nawet gdy potrzebny jest rozmiar proporcjonalny, to można wyliczyć odpowiednią ilość pixeli na podstawie
offsetParent.offsetWidth
). - Zamiast komórek tabel użyć elementów blokowych lub float.
W Operze 9.2 pomaga też wykonanie następującego kodu po zmianie ilości/szerokości komórek tabeli:
if (window.opera) { var css = document.body.appendChild(document.createElement("link")); css.rel="stylesheet"; css.href="javascript:void('hack for 1-px wide dynamic tables')"; css.parentNode.removeChild(css); }
Ten kod dodaje i usuwa pusty arkusz stylów. Najprawdopodobniej „załadowanie” arkusza wymusza w Operze przeliczenie wielkości wszystkich elementów.
Zmodyfikowano: 31.05.2007, 11:34