Blog webdeveloperski Patryk yarpo Jar

XHTML 1.0 dla IE 6

Autor wiadomości Listopad 22, 2010

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 artykule 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
    &lt;script type="text/javascript" src="skrypt.js"/&gt;

    w dokumencie przesyłanym jako HTML prowadzi zwykle do niewyświetlenia reszty dokumentu; należy w tym wypadku używać

    &lt;script type="..." src="..."&gt;&lt;/script&gt;
  • 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
    &lt;link rel="stylesheet" ... /&gt; 
  • 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.:
    &lt;style type="text/css"&gt;/* &lt;![CDATA[ */ arkusz stylów /* ]] */&lt;/style&gt;
  • O pró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:
    &lt;?php header('Content-Type: '.$mime.'; charset=iso-8859-2'); ?&gt;

    gdzie `$mime' to ustalony w wyniku negocjacji zawartości typ pliku.

  • 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 (niedługo się taki pojawi).

Tagged as: , , Dodaj komentarz
Komentarze (0) Trackbacks (0)

Brak komentarzy.


Leave a comment

 

Brak trackbacków.