2009-03-20 11 views
13

Właśnie pobrałem pełną wersję IE8, aby przetestować utworzoną właśnie witrynę. [Przykład usunięty]Renderowanie przezroczystego png IE8 jest FUBARed na mojej stronie

Skup się na lewym obrazie tła paska bocznego. Przypuszczalnie ma to być półprzezroczysty obraz półprzezroczysty 1x1, który się powtarza. IE8 renderuje to jako gradient !!! Robi się jeszcze bardziej niebezpieczny, gdy próbujesz przewinąć okno lub mysz nad pasek boczny.

Już testowałem tę stronę w normalnych przeglądarkach (IE7, Firefox i Chrome). Wygląda dokładnie tak, jak to zaprojektowałem. IE8 jest jednak FUBARed. Próbowałem ustawić IE8 na tryb "IE7", ale nadal wygląda na brzydko. IE 8 w trybie IE7 oczywiście nie renderuje w ten sam sposób, co prawdziwy IE7. Nawet "metatag IE7" nie działa.

Czy ktoś jeszcze miał takie problemy? Myślałem, że IE8 ma być ulepszeniem, a nie krokiem wstecz.

P.S. Proszę wybaczyć nieczytelnym znacznikom na tej stronie. Użyłem funkcji "Zapisz całą stronę" IE.

+0

Nie widzę problemu. Wygląda dokładnie tak samo na IE 8.0.6001.18702, tak jak w FireFox 3.0.7 – mhenry1384

+0

Wpadłem na ten problem na dokładnej wersji mhenry1384 wzmianki powyżej, IE 8.0.6001.18702. Zgodnie z sugestią poniżej, zmiana obrazu w tle .png, którego użyłem do piksela 1 x 2, rozwiązała problem. Dziękujemy za przesłanie Twojego pytania. – zombat

Odpowiedz

24

Może to być błąd renderowania w IE8 lub może to być funkcja wygładzania krawędzi powtarzających się obrazów, która daje nieoczekiwany rezultat. Tak czy inaczej nie jest zaskakujące, że masz problemy z używaniem tak małego obrazu. Czy zdajesz sobie sprawę, że przeglądarka musi narysować obraz 190152 razy, aby wyrenderować stronę?

Używam półprzezroczystego png o wymiarach 10x10 jako tła dla elementu div na stronie, a renderowanie jest w porządku w IE8.

+0

Rozmiar obrazu nie ma znaczenia przy wypełnianiu wzoru na środku wykonania. Oprogramowanie (lub akceleracja sprzętowa) ustawia kolor każdego piksela, matematycznie uzyskując kolor wyrównanego piksela na wzorze wypełnienia. Zatem piksel w (10,10) zostanie wypełniony (5,5) wzorem 5x5, (2,2) wzoru 4x4 lub (1,1) wzoru 1x1. Co więcej, wzór 1x1 może mieć specjalny przypadek, co oznacza, że ​​cały obszar zostanie wypełniony jednolitym kolorem, co może zwiększyć prędkość niektórych platform. Dlatego nie wahaj się korzystać z pomocy 1px w razie potrzeby. – SuperDuck

+0

@SuperDuck: Rozmiar nie powinien mieć znaczenia, ale oczywiście tak. Pamiętam Netscape 4, w którym powtarzające się obrazy nie działały w ogóle, chyba że miały kilka pikseli szerokości ... – Guffa

+0

Tak, to miało znaczenie z powodu pewnych błędów. Ale mam na myśli nie wydajność (np. Liczba płytek nie ma znaczenia). Obrazy 1x1 są bardzo często używane przez oprogramowanie, w tym Dreamweaver i MS. W każdym razie, widzę, że się martwisz, i dlatego używałam szerszych obrazów w erze Netscape. – SuperDuck

2

Naprawiłem błąd i nie jest to problem gamma, o którym wspomina inny wpis. Mój problem wynikał z faktu, że obraz ma rozmiar 1 x 1 piksel. Właśnie zmieniłem go na 1x2 i naprawiłem problem. Dziwne

[edytuj] Po prostu zobaczyłem post Guffa po tym, jak go o to poprosiłem. Zobacz jego odpowiedź.

+5

Zdecydowanie sprawiłbym, że byłby większy. Naprawdę małe obrazy tła spowodowały straszne problemy z wydajnością w przeglądarkach z przeszłości. Przebijanie go, powiedzmy, 64x64 nie kosztowałoby Cię zbyt dużego rozmiaru pliku. – bobince

+1

Próbowałem najpierw z korekcją gamma przy użyciu pngcrush - nie działał - więc próbowałem tego podejścia - obraz 5x5 px wciąż go nie brał, ani nie 10x10 - tak wypróbowany z 64x64 i działa magicznie. – easwee

1

Miałem podobny problem z witryną, którą buduję. Problem pojawił się tylko na 50% maszyn, na których był testowany, budowałem go dla firmy IT, więc miałem dostęp do wielu komputerów. Byliśmy w stanie "naprawić" problem poprzez przełączanie akceleracji sprzętowej na problematycznych komputerach, a nie to wcale naprawę.

+0

wł. Lub wył .: przełączanie nie jest idempotentne –

1

Dziękuję za pomoc w tej sprawie - co za dziwny błąd.

Wystąpił również problem na 50% komputerów z IE8 (miał dostęp do wielu maszyn). Kiedy miałem półprzezroczysty png 1x1px jako obraz tła na div z CSS, IE renderowałoby to jako funky pionowy, przezroczysty gradient.

Zmiana obrazu źródłowego na 5x5 piksele z tego samego krycia naprawiła błąd ... IE!

1

Problem był mój pierwotny png był 1 x 1, a dla jakiegoś powodu IE8 został nie podoba, że ​​stara się płytki i obsługi przezroczystości alfa w samym czasie. Kiedy przypadkowo zapisałem , ten obraz z dużo większą kopią I miał w moim schowku, 100 × 100, zakończył się naprawianiem jakiegokolwiek problemu Internet Explorer miał z przetwarzaniem przezroczystości png.

Source

Powiązane problemy