Χρήση του στοιχείου DOCTYPE σε λειτουργία Quirks

Αφήστε το Doctype να θέσει τους περιηγητές σε λειτουργία Quirks

Εάν σχεδιάζετε ιστοσελίδες για περισσότερους από μερικούς μήνες, πιθανότατα γνωρίζετε τη δυσκολία να γράψετε μια σελίδα που να φαίνεται η ίδια σε όλα τα προγράμματα περιήγησης . Στην πραγματικότητα, αυτό είναι αδύνατο. Πολλά προγράμματα περιήγησης γράφτηκαν με ειδικά χαρακτηριστικά που μόνο αυτά θα μπορούσαν να χειριστούν. Ή έχουν ειδικούς τρόπους χειρισμού πραγμάτων που είναι διαφορετικά από το πώς τα χειρίζονται άλλα προγράμματα περιήγησης. Για παράδειγμα:

Το πρόβλημα για τους προγραμματιστές του προγράμματος περιήγησης είναι ότι πρέπει να δημιουργήσουν προγράμματα περιήγησης ιστού που είναι συμβατά προς τα πίσω με ιστοσελίδες που έχουν δημιουργηθεί για παλαιότερα προγράμματα περιήγησης. Προκειμένου να αντιμετωπιστεί αυτό το ζήτημα, οι κατασκευαστές προγραμμάτων περιήγησης δημιούργησαν τρόπους λειτουργίας των προγραμμάτων περιήγησης. Αυτές οι λειτουργίες ορίζονται από την παρουσία ή την απουσία ενός στοιχείου DOCTYPE και από αυτό που καλεί το DOCTYPE.

DOCTYPE Εναλλαγή και "λειτουργία Quirks"

Αν τοποθετήσετε στην ιστοσελίδα σας το ακόλουθο DOCTYPE:

Τα σύγχρονα προγράμματα περιήγησης (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) θα ερμηνεύονται με τον ακόλουθο τρόπο:

  1. Επειδή υπάρχει σωστά γραπτή DOCTYPE, αυτό ενεργοποιεί τη λειτουργία προτύπων.
  2. Πρόκειται για ένα μεταβατικό έγγραφο HTML 4.01
  3. Επειδή είναι σε κατάσταση προτύπων, τα περισσότερα προγράμματα περιήγησης θα καταστήσουν το περιεχόμενο συμβατό (ή ως επί το πλείστον συμβατό) με HTML 4.01 Transitional

Και αν βάλετε αυτό το DOCTYPE στο έγγραφό σας:

Αυτό λέει στους σύγχρονους φυλλομετρητές ότι θέλετε να εμφανίσετε τη σελίδα σας HTML 4.01 σε αυστηρή συμμόρφωση με το DTD.

Αυτά τα προγράμματα περιήγησης θα μεταβούν σε τρόπο "αυστηρό" ή "πρότυπα" και θα καταστήσουν τη σελίδα σύμφωνα με τα πρότυπα. (Έτσι, για αυτό το έγγραφο, ετικέτες όπως μπορεί να αγνοηθούν εντελώς από το πρόγραμμα περιήγησης, καθώς το στοιχείο FONT έχει καταργηθεί στο HTML 4.01 Strict.)

Εάν αφήσετε τελείως το DOCTYPE, τα προγράμματα περιήγησης κλωτσήζονται αυτόματα σε λειτουργία "quirks".

Ο παρακάτω πίνακας δείχνει τι κάνουν τα κοινά προγράμματα περιήγησης όταν παρουσιάζονται με διαφορετικές κοινές δηλώσεις DOCTYPE.

Η Microsoft το κάνει πιο δύσκολο

Ο Internet Explorer 6 διαθέτει επίσης το χαρακτηριστικό ότι αν βάζετε τίποτα καθόλου πάνω από τη δήλωση DOCTYPE, θα μεταβούν σε λειτουργία quirks. Έτσι, και τα δύο αυτά παραδείγματα θέτουν τον IE 6 σε λειτουργία quirks, παρόλο που οι δηλώσεις DOCTYPE λένε ότι είναι σε αυστηρά πρότυπα:

και το XHTML 1.1 DOCTYPE:

Επιπλέον, αν έχετε παρελθόν IE6, τότε έχετε το "χαρακτηριστικό" που προστέθηκε από την Microsoft στο IE8 και IE9: Μεταγωγή στοιχείων META και μαύρη λίστα ιστότοπων. Στην πραγματικότητα, αυτές οι δύο εκδόσεις προγραμμάτων περιήγησης διαθέτουν έως και επτά (!) Διαφορετικούς τρόπους:

Ο IE 8 εισήγαγε επίσης τη "λειτουργία συμβατότητας", όπου ο χρήστης θα μπορούσε να επιλέξει να αλλάξει το μοντέλο απόδοσης πίσω στη λειτουργία IE 7. Έτσι, ακόμα και αν ορίσετε τη λειτουργία που θέλετε να ορίσετε χρησιμοποιώντας τα στοιχεία DOCTYPE και META, η σελίδα σας θα μπορούσε ακόμα να ωθηθεί ξανά σε κατάσταση που δεν συμμορφώνεται με τα πρότυπα.

Τι είναι η λειτουργία Quirks;

Η λειτουργία Quirks δημιουργήθηκε για να βοηθήσει στην αντιμετώπιση όλων των παράξενων προβλημάτων της προβολής και των μη συμβατών προγραμμάτων περιήγησης και των hacks που χρησιμοποιούν οι σχεδιαστές ιστοσελίδων για να αντιμετωπίσουν αυτά τα πράγματα. Η ανησυχία που είχαν οι κατασκευαστές προγραμμάτων περιήγησης ήταν ότι εάν άλλαζαν τα προγράμματα περιήγησης σε πλήρη συμμόρφωση, οι σχεδιαστές ιστοσελίδων θα έμεναν πίσω.

Με τη ρύθμιση της εναλλαγής DOCTYPE και της "Quirks Mode" επέτρεψε στους σχεδιαστές ιστοσελίδων να επιλέξουν τον τρόπο με τον οποίο θέλουν οι φυλλομετρητές να αποδώσουν το HTML τους.

Αποτελέσματα τρόπων quirks

Υπάρχουν διάφορα εφέ που χρησιμοποιούν τα περισσότερα προγράμματα περιήγησης σε λειτουργία Quirks:

Υπάρχει επίσης μια διαφορά στο "Σχεδόν Πρότυπα":

Πώς να επιλέξετε ένα DOCTYPE

Πηγαίνω σε περισσότερες λεπτομέρειες στο άρθρο μου DOCTYPE List, αλλά εδώ είναι μερικοί γενικοί κανόνες:

  1. Πάντα να επιλέγετε πρώτα την κατάσταση προτύπων. Και το τρέχον πρότυπο που πρέπει να χρησιμοποιήσετε είναι HTML5:
    Εάν δεν έχετε συγκεκριμένο λόγο για να αποφύγετε τη χρήση του HTML5 DOCTYPE, αυτό πρέπει να χρησιμοποιήσετε.
  2. Πηγαίνετε στο αυστηρό HTML 4.01 αν χρειαστεί να επικυρώσετε τα στοιχεία παλαιού τύπου ή θέλετε να αποφύγετε νέα χαρακτηριστικά για κάποιο λόγο:
  3. Εάν έχετε φέτες εικόνες σε έναν πίνακα και δεν θέλετε να τις διορθώσετε, μεταβείτε στο Μεταβατικό HTML 4.01:
  4. Μην εγγράφετε σελίδες εσκεμμένα σε λειτουργία quirks. Χρησιμοποιείτε πάντα ένα DOCTYPE. Αυτό θα σας εξοικονομήσει χρόνο ανάπτυξης στο μέλλον και πραγματικά δεν έχει κανένα όφελος. Το IE6 χάνει γρήγορα τη δημοτικότητα και σχεδιάζοντας για αυτό το πρόγραμμα περιήγησης (το οποίο είναι ουσιαστικά αυτό που σχεδιάζετε σε λειτουργία quirks) περιορίζετε τον εαυτό σας, τους αναγνώστες σας και τις σελίδες σας. Αν πρέπει να γράψετε για τον IE 6 ή 7, χρησιμοποιήστε τα σχόλια υπό όρους για να τα υποστηρίξετε, αντί να αναγκάσετε τα σύγχρονα προγράμματα περιήγησης σε λειτουργία quirks.

Γιατί να χρησιμοποιήσετε το DOCTYPE

Μόλις αντιληφθείτε ότι αυτός ο τύπος αλλαγής DOCTYPE συνεχίζεται, μπορείτε να επηρεάσετε τις ιστοσελίδες σας πιο άμεσα χρησιμοποιώντας ένα DOCTYPE που υποδεικνύει τι μπορεί να περιμένει το πρόγραμμα περιήγησης από τη σελίδα σας. Επίσης, μόλις αρχίσετε να χρησιμοποιείτε το DOCTYPE, θα γράφετε HTML που είναι πιο κοντά στο να είναι έγκυρη (θα πρέπει να το επικυρώσετε). Και γράφοντας έγκυρο XHTML, ενθαρρύνετε τους κατασκευαστές φυλλομετρητών να δημιουργούν πρότυπα συμβατά προγράμματα περιήγησης.

Οι εκδόσεις του προγράμματος περιήγησης και η λειτουργία Quirks

DOCTYPE Android
Χρώμιο
Firefox
IE 8+
iOS
Opera 7.5+
Σαφάρι
IE 6
IE 7
Opera 7
Netscape 6
Κανένας Λειτουργία Quirks Λειτουργία Quirks Λειτουργία Quirks
HTML 3.2
Λειτουργία Quirks Λειτουργία Quirks Λειτουργία Quirks
HTML 4.01
Μεταβατικός Πρότυπη λειτουργία * Πρότυπη λειτουργία * Πρότυπο λειτουργίας
Μεταβατικός Λειτουργία Quirks Λειτουργία Quirks Λειτουργία Quirks
Αυστηρός Πρότυπο λειτουργίας Πρότυπη λειτουργία * Πρότυπο λειτουργίας
Αυστηρός Πρότυπο λειτουργίας Πρότυπη λειτουργία * Πρότυπο λειτουργίας
HTML5
Πρότυπο λειτουργίας Πρότυπη λειτουργία * Λειτουργία Quirks
* Με αυτό το DOCTYPE, τα προγράμματα περιήγησης είναι κοντά στα πρότυπα που συμμορφώνονται, αλλά έχουν κάποια προβλήματα-βεβαιωθείτε ότι έχετε δοκιμάσει. Αυτό είναι επίσης γνωστό ως "Σχεδόν Πρότυπα".