Aby zapewnić zgodność swoich przeglądarek z ich wcześniejszymi wersjami Microsoft wprowadził w IE6 tzw. quirks mode - tryb zgodności wstecznej, nazwany słusznie choć wbrew intencjom twórców trybem dziwności. Nie jest to bowiem tryb pracy zapewniający oczekiwaną przez projektantów zgodność ze standardami, ale tryb, w którym nowsze przeglądarki udają swoich przodków, zachowują się, jak ich poprzedniczki, naśladując ich błędy i niedoróbki.
Rozwiązanie Microsoftu można by akceptować, gdyby rzeczywiście IE6 ograniczało się tylko do interpretacji stron tak, jak to robiła IE4. Problem polega na tym, że w trybie tym nie zaimplementowano mechanizmów rozpoznających, z której wersji IE korzysta internauta. IE przechodzi w tryb dziwactw w kilku sytuacjach:
- w dokumentach wykorzystujących stare deklaracje DOCTYPE, z niepełnym adresem specyfikacji DOCTYPE lub w ogóle bez określenia rodzaju dokumentu,
- w dokumentach, w których przed informacją o DTD umieszczona zostanie choćby pusta linia czy prolog XML.
Na dodatek z trybu quirks korzysta nie tylko Internet Explorer, ale również inne przeglądarki jak np. Mozilla czy Opera.
Jak IE działa w trybie dziwactw?
- przestrzeń, w której jest wyświetlany dokument, wyznacza element body (szerokość body równa szerokości okna przeglądarki, marginesy ustalone dla body były ustawiane wewnątrz ramki i suwaków okna, body "pojemnikiem" dla elementów pozycjonowanych, które nie mają wypozycjonowanego rodzica) - w standardzie element html (html, a nie body staje się "pojemnikiem" dla elementów pozycjonowanych, które nie mają wypozycjonowanego rodzica).
- szerokość marginesów i dopełnień wliczana jest do szerokości elementu - w standardzie CSS szerokość elementu wyznacza suma tych szerokości,
- atrybut scroll="yes|no|auto" oraz własności CSS overflow, overflow-x i overflow-y stosują się do selektora body - w trybie zgodności do selektora html,
- domyślnej wielkości czcionki odpowiada wartość small - w trybie zgodności wartość medium,
- własność padding dla znacznika <img> nie jest interpretowana,
- nie ma obsługi własności min-height.
Jak unikać trybu dziwactw?
Problem można rozwiązać w dwojaki sposób:
- korzystać ze ścisłej (strict) wersji języka HTML lub z XHTML,
- unikać umieszczania czegokolwiek przed DOCTYPE.
Aby dowiedzieć się więcej o szczegółach trybu quirks, skorzystaj z poniższych adresów: