XHTML 1.0 dla ułomnych przeglądarek Drukuj
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Patryk yarpo Jar   
wtorek, 26 października 2010 12:18

Niestety IE stanowi dużą część rynku. Nie wiem, jak najnowsze wersje tego programu, ale na pewno IE6 z XHTML radzić sobie nie umiał :(.

W tym artyklule postaram się pokazać, co należy zrobić, aby dokument XHTML był poprawny, a IE6 potrafił go jakoś odczytać.

Mimo że IE nie potrafi obsługiwać XHTML – serwowanego jako aplikacja XML – można wykonać kilka zabiegów, które pozwolą nam na prawidłowe wyświetlanie treści także i w popularnym „misiu” (od MSIE).

  • Znaczniki pustych elementów powinny zawierać dodatkową spację przed ukośnikiem, np. zamiast <br/> powinno być <br /> .
  • Należy unikać używania zminimalizowanej formy (np. <p/>) w przypadku pustych elementów, które mogą mieć zawartość; np. stosowanie znacznika
    <script type="text/javascript" src="/skrypt.js"/>
    w dokumencie przesyłanym jako HTML prowadzi zwykle do niewyświetlenia reszty dokumentu; należy w tym wypadku używać
    <script type="..." src="/..."></script>
  • Obok lub zamiast instrukcji xml-stylesheet należy odwoływać się do zewnętrznych arkuszy stylów przy pomocy obsługiwanego w HTML-u znacznika
    <link rel="stylesheet" ... /> 
  • Objęcie wewnętrznych skryptów i stylów sekcją CDATA może powodować ich błędne działanie; należy w związku z tym zakomentować znaczniki początku i końca sekcji CDATA, np.:
    <style type="text/css">/* <![CDATA[ */ arkusz stylów /* ]] */</style> 
  • Oprócz typowej dla XML deklaracji języka za pomocą atrybutu xml:lang, należy też używać zgodnego z HTML atrybutu lang.
  • Dla kompatybilności z IE6 należy pomijać deklarację XML — powoduje to w nim przejście w tryb wstecznej zgodności. Nie ma sensu jednak dodawać jej dla innych przeglądarek (skryptami po stronie serwera), gdyż i tak jest ona nieobowiązkowa. Strona musi być zakodowana jako UTF-8/USC-*, a jeżeli jest zakodowana inaczej, musimy odpowiednią informację dodać do nagłówka Content-Type (np. kodem PHP:
    <?php header('Content-Type: '.$mime.'; charset=iso-8859-2'); ?>
    , gdzie `$mime' to ustalony w wyniku negocjacji zawartości typ pliku. Zobacz: http://kurs.browsehappy.pl/HTML/Wysylanie).
  • W DOM należy używać createElementNS zamiast createElement i trzeba uważać na wielkość liter (DOM HTML podaje nazwy elementów wielkimi literami, DOM XML zachowuje wielkość liter i w XHTML dopuszcza tylko małe litery).

 

XHTML 1.1

Jako, że to jest już trochę inny temat zdecydowałem o publikacji tego jako osobnego artykułu.