Szybki hack dla projektów niekompatybilnych z IE8
Szybka poprawka dla starszych projektów WWW, które nie są jeszcze całkowicie kompatybilne z Internet Explorerem 8. Rozwiązanie doraźne, ale oszczędza bólu przy hackowaniu kodu dla najnowszego Misia, dla którego w trybie standardów wyrażenia typu expressions już nie działają ;-)
Wersja z .htaccess
Najszybciej i najprościej będzie skorzystać z pliku .htaccess (jeśli mamy taką możliwość). Poniższa reguła uwzględnia różne odmiany skryptów PHP i HTML. Nie ma potrzeby doklepywania żadnego dodatkowego markupu. Alternatywnie można wysłać odpowiednie nagłówki za pomocą skryptu (o ile dokument jest generowany dynamicznie).
# Force Compatibility View in IE8 <IfModule mod_headers.c> <FilesMatch "\.(php[4-6]?|[sx]?html?)$"> Header set X-UA-Compatible "IE=EmulateIE7" </FilesMatch> </IfModule>
Wersja ze znacznikiem META
Nie wygląda najlepiej, ale składniowo jest poprawnie, dlatego też kod przechodzi walidację. Do sekcji HEAD dokumentu HTML należy dopisać poniższą linijkę. Niestety, kod nie zadziała, jeśli umieścimy go w komentarzu warunkowym dla IE (z bliżej nieznanych mi przyczyn).
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Zapomniałbym dodać: po zastosowaniu jednej z powyższych sztuczek, w IE8 zniknie przycisk umożliwiający ręczne przełączanie trybu kompatybilności z IE7. Dla końcowego użytkownika jest to praktycznie niezauważalne.
Ku pamięci ;-)
Zamieniłem tryb z IE=7 na IE=EmulateIE7. Teoretycznie drugi zapis jest bardziej elastyczny – IE na podstawie deklaracji typu dokumentu zdecyduje, czy zastosować quiks mode czy standards mode. W przypadku tego pierwszego tryb standardów jest wymuszany zawsze. Dla większości poprawnie napisanych stron nie będzie miało to większego znaczenia. Więcej informacji.

Crozin pisze:
Tak się zastanawiam… czy jest sens robić cokolwiek pod przeglądarkę, która jeszcze nie wyszła? :)
Dodano 15 marca 2009 o 17:40:26 ¶
Wasacz pisze:
A o czym jest ten wpis, jeśli nie o tym? ;>
Osobiście uważam, że nie ma sensu poprawiać starych projektów dla tej garstki ludzi, która używa niestabilnej jeszcze wersji IE8. Więc taki hack jest jak znalazł.
Dodano 15 marca 2009 o 17:41:52 ¶
Paolo pisze:
A ja zastanawiam się, czy jest sens tworzyć przeglądarkę, która nie jest z niczym kompatybilna – tak tylko żeby było?
Dodano 15 marca 2009 o 17:42:51 ¶
Wasacz pisze:
Paolo – słusznie, i jeszcze bestialsko wycięli
expressions. Nic tylko inwestować w żyletki.Dodano 15 marca 2009 o 17:43:34 ¶
Crozin pisze:
A ma ktoś może gdzieś pod ręką linka do tego czego IE8 (nie)obsługuje (zależy, która lista będzie krótsza). ;)
Dodano 15 marca 2009 o 17:46:00 ¶
Paolo pisze:
W IE podoba mi się tylko design – taki nieprzesadzony i po prostu widać spod czyjej ręki wyszedł (M$).
Tak poza tym to wiele osób nie patrzy jak działają strony, czy trzymają się „kupy” i miały więcej dostępnych funkcji – oby internet działał i tak do wiosny…
Dodano 15 marca 2009 o 17:47:18 ¶
Paolo pisze:
Crozin:
Raz
Najlepszy dowód na potęgę IE
Dodano 15 marca 2009 o 17:49:03 ¶
BTM pisze:
@Paolo: mniam, Onet źródłem informacji na jakikolwiek temat. Brawo ;>
Jak ja teraz zrobię listę 2.4k stron nie kompatybilnych z Operą / Firefoxem / TU_WSTAW_TO_CZEGO_UŻYWASZ w wersji Beta Sreta i Kometa 0.666 to też zaczną pisać na Onecie?
Dodano 15 marca 2009 o 18:28:09 ¶
Paolo pisze:
@BTM: jak lubią :) Link znaleziony jakiś czas temu na jednym z for mobilnych (całkiem fajnym forum zresztą).
Dodano 15 marca 2009 o 18:32:47 ¶
dikamilo pisze:
Dobre przynajmniej jest to że jak się robi stronę to na IE7 i 8 jakoś to jeszcze hula, i poprawiać tylko trzeba / można na IE6 :)
Dodano 15 marca 2009 o 22:21:32 ¶
lukasz pisze:
to IE8 jest w końcu kompatybilne ze standardami czy nie? Czy może działa to jeszcze tak jak w pierwszej wersji beta, zasysa style dla IE6/7 poczym powstaje remix?
Dodano 16 marca 2009 o 13:02:25 ¶
Wasacz pisze:
lukasz: Żadnego (re)miksu nie ma; wg MS jakaś tam zgodność ze standardami jest, ale pamiętaj, że to nadal IE.
Dodano 16 marca 2009 o 16:43:33 ¶
lukasz pisze:
Wasacz a zachowali komentarze warunkowe coby ewentualny plik podczepić?
Dodano 16 marca 2009 o 17:20:28 ¶
Wasacz pisze:
Tak. Ale już
expressionsdziałają tylko w trybie emulowania IE7 albo w quirks.Dodano 16 marca 2009 o 17:21:48 ¶
Bartosz "BTM" Szczec pisze:
No i to chyba dobrze. IE7 / 6 używało expresions głównie po to, by nadrobić brak standardów. Teraz większość CSS2 już chyba łapie, nie?
Dodano 16 marca 2009 o 17:36:32 ¶
Wasacz pisze:
Łapie, nie łapie – bugi są nadal, a teraz to nie ma za bardzo jak ich naprawić.
Dodano 16 marca 2009 o 17:37:25 ¶
lukasz pisze:
Czyli jeśli MS wymusi instalację IE8, to zrobi się ładny burdel? To ma swoje plusy, Ci co chcieli zrobić „tanie strony”, w końcu zobaczą że popełnili błąd jak ich strona firmowa się sypnie.
Dodano 16 marca 2009 o 17:48:02 ¶
Bartosz "BTM" Szczec pisze:
@lukasz: nie licz na to. Instalacji IE7 nie wymusili, a przedłużyli lifespan XP – więc IE jeszcze sobie pożyje.
Poza tym, dzięki kompatybilności IE8 z IE7 strony „przeżyją”.
Dodano 16 marca 2009 o 17:50:02 ¶
Wasacz pisze:
lukasz: MS przecież oznaczył pół Internetu jako niekompatybilny. To czy strona jest „tania”, czy nie, raczej nie ma znaczenia, bo i tak się może wysypać (np. z powodu takich banalnych rzeczy jak clearowanie za pomocą GC w CSS).
Dodano 16 marca 2009 o 17:50:53 ¶
Bartosz "BTM" Szczec pisze:
Dunno, moje serwisy się poprawnie w IE8 wyświetlają a nie stosowałem żadnych hacków. Zresztą, zwykle mam style.css, ie6.css i shitpera.css ;]
Dodano 16 marca 2009 o 17:51:51 ¶
Wasacz pisze:
IE8 kuma
:aftera nie kuma::after. Dla każdej przeglądarki poza IE to bez różnicy. I jest okazja do wysypania się.Zauważyłem też różnice w renderowaniu różnych marginesów i dopełnień, gdyby się tak bliżej przyjrzeć.
To tylko przykłady. Do kompletu zostaje słaba obsługa JS i całkowity brak CSS3 (np. opacity, na które jest w IE8 filtr, ale chyba inny niż w IE6/7 – nie pamiętam). Ale znów aż tak źle nie jest ;]
Dodano 16 marca 2009 o 17:57:02 ¶
Bartosz "BTM" Szczec pisze:
Powiem więcej – jest dużo lepiej. I nie mogę doczekać się momentu w którym:
a) przestaniemy oceniać finalny produkt po becie, bo ileż to razy przy zmianie FF 2.x na 2.x+1 się coś rozpierdzieliło to mała głowa
b) MS zamknie kramik z XP i ludzie przesiądą się na Vistę (IE7) lub W7 (IE8)
Dodano 16 marca 2009 o 17:58:38 ¶
dikamilo pisze:
@Bartosz „BTM” Szczec, a jaki jest sens zmiany systemy tylko po to aby używać IE > 6 ? Ja na swoim xp mam ie7 mimo że i tak tej przeglądarki nie używam.
Dodano 16 marca 2009 o 18:01:03 ¶
Wasacz pisze:
Ale IE8 ma już status RC ;-)
IMHO, IE8 to nadal przeglądarka specjalnej troski, mimo tych poprawek.
Dodano 16 marca 2009 o 18:01:38 ¶
Bartosz "BTM" Szczec pisze:
Ale Kowalski i jego mama, albo Pani Zosia z księgowości nie ma, bo jej admin zainstalował IE6 i koniec.
Dodano 16 marca 2009 o 18:01:44 ¶
matek pisze:
Czy przy okazji mogę prosić o rozjaśnienie takiej sprawy (no chyba że coś przeoczyłem) ?
Otóż, mam stronę z zestawem poprawek dla IE 6/7 (w osobnych arkuszach otoczonych komentarzami warunkowymi). Stosowałem zawsze konwencje „if IE eq 7” (czyli warunek nie będzie dotyczył IE8). Czy mam się więc czym martwić jeśli chodzi o poprawne wyświetlenie w IE8? (pomijając to, że pewnie trzeba będzie doczepić kolejny ie8.css).
A sposobem aby móc w IE8 korzystać z expressions, będzie właśnie włączenie przez rzeczony znacznik meta trybu zgodności z IE7? (wtedy strony wyświetlają się jak w IE7, jednak z szybkością IE8?).
Z góry dzięki za wyjaśnienia, i pozdrawiam.
Niech MS dobrze przemyśli sprawę tych (nie)zgodności wstecz i wspak :), bo się jeszcze większy bajzel zrobi na tym poletku.
Dodano 17 marca 2009 o 09:21:13 ¶
lukasz pisze:
matek i dobrze że się zrobi, w końcu ludzie zobaczą kto potrafi projektować a kto nie i ile to kosztuje. Chyba że MS wprowadzi znowu swój kolejny standard standardów i IE8/9 będzie wyświetlało każdą stronę inaczej bo opracują nową technologię gdzie 1px = 2px ;)
Dodano 17 marca 2009 o 10:45:20 ¶
Bartosz "BTM" Szczec pisze:
@lukasz: o, to by było dobre, bo wtedy mógłbym robić to co chcą nasi handlowcy („przesuń ten banerek o pół piexela w prawo”)
Dodano 17 marca 2009 o 10:46:16 ¶
lukasz pisze:
świetne, szczególnie że musiałbyś poprawiać styl dla IE6/7, + 3 dla IE8 :D standardowy, kompatybilny z poprzednimi wersjami[bo tych co powstały dla poprzednich wersji nie łapie], oraz ten nowatorski :D wiesz… po głębszym zastanowieniu, znając praktyki MS w cale bym się nie zdziwił jakby takie coś weszło w życie.
Dodano 17 marca 2009 o 10:49:41 ¶
Bartosz "BTM" Szczec pisze:
Wiesz, w tym momencie Twoja demonizacja nie zauważająca mojego sarkazmu zaczyna śmierdzieć fanboizmem. Mów co chcesz, ale IE zrobiło jednak dla sieci dużo dobrego – a to, że teraz musimy męczyć się z behemotem z czasów Window98 to już inna sprawa ;]
Dodano 17 marca 2009 o 10:50:50 ¶
lukasz pisze:
Nie przesadzaj ;) Nikt tego nie neguje, choć szkoda że tak to się skończyło.
Dodano 17 marca 2009 o 10:51:57 ¶