--=REKLAMA=--

Tryb dziwności i jak go unikać

Z Joomla!WikiPL

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:

Dziękujemy za wkład

» Stefan Wajda [zwiastun],