luni, 24 noiembrie 2008

Standard vs. Quirks

Interfete Web

Browserele obisnuite afiseaza documentele HTML in modul standard sau quirks(ciudatenie). Aceasta inseamna ca sunt aplicate diferite reguli, in primul caz regulile standardelor W3C, iar in cel de-al doilea caz reguli care simuleaza modul de afisare (non-standard) al browserelor vechi.


Alegerea modului folosit necesita un trigger, iar acest trigger a fost gasit in 'doctype switching'. Conform standardelor, orice document (X)HTML trebuie sa aiba un Doctype care sa indice ce modul utilizat.

  • Paginile vechi scrise inainte de standardizare nu au un doctype. Astfel 'no doctype' inseamna utilizarea modului quirks: afisarea conform vechilor regului.
  • Contrar, daca s-a inclus un doctype, acesta va face trigger pentru modul standard: afisarea conform standardelor.
  • Orice tip nou sau necunoscut de doctype va face trigger pentru modul standard.

De mentionat ca nu pagina face validarea in concordanta cu doctype-ul utilizat, simpla prezenta a tagului "doctype" este suficienta pentru a se afisa in modul standard.In general este bine sa servesti paginile in modul standard,adica sa incluzi declaratia DOCTYPE.

Pentru aceasta se recomanda utilizarea tagului doctype in paginile scrise pentru a obtine efectul de 'interfete evoluate'. Aditional, declararea paginilor XHTML 1.0 Transitional determina afisarea in modul standard in majoritatea browserelor.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

In browsere ca Firefox, Mozilla, Netscape, Opera, si altele, o pagina cu o declaratie DOCTYPE este afisata in modul standard, cu sau fara declaratia XML.

In Internet Explorer insa, daca ceva apare inaintea declaratiei DOCTYPE pagina este afisata in modul quirks. Pentru ca multi vizitatori folosesc Internet Explorer, acesta este un aspect important. Daca vrei sa te asiguri ca paginile apar la fel in toate browserele care implementeaza standardele, ai urmatoarele optiuni. Evident, daca documentul nu contine nimic care este afectat de diferenta dintre modurile standard si quirks, aceasta nu reprezinta o problema.

Daca documentul este afectat, trebuie rezolvate diferentele intr-un fel sau trebuie omisa declaratia XML.Daca decizi sa omiti declaratia XML trebuie sa folosesti UTF-8 sau UTF-16 ca encoding.

Niciun comentariu: