Δεν υπάρχουν πολλά άρθρα που να καλύπτουν ασυμβατότητες ή CSS διαφορές μόνο στον Firefox - και για καλό λόγο.
Ο Firefox έχει κάνει πάντα μια εξαιρετική καλή δουλειά να υποστηρίζει τόσο το CSS όσο και το JavaScript με τρόπο συμβατό με τα πρότυπα, χωρίς πολλά αμήχανα σφάλματα.
Υπάρχουν, ωστόσο, μερικές ιδιότητες και επιλογείς CSS που δεν υποστηρίζονται από μία ή περισσότερες από τις εκδοχές που κυκλοφόρησαν από την έκδοση 3.0, την οποία θα καλύψω εδώ.
Αυτό το άρθρο θα καλύπτει σφάλματα, ασυνέπειες και μη υποστήριξη . Έτσι, αν έχετε πρόβλημα με μια ιδιότητα ή επιλογέα CSS στον Firefox και δεν είναι καταχωρημένο εδώ, τότε θα πρέπει πιθανώς να ξανασκεφτείτε τη διάταξη και να επανεξετάσετε ποιος μπορεί να είναι ο ένοχος.
Δεδομένου ότι ο Firefox 2 είναι ουσιαστικά ανύπαρκτος , Δεν θα εξετάσω συγκεκριμένα αυτήν την έκδοση, αλλά αυτές οι πληροφορίες θα ισχύουν γενικά για αυτήν την έκδοση από προεπιλογή.
Και πρέπει να σημειώσω ότι το υλικό για αυτή τη θέση λήφθηκε κυρίως από το πρόσφατα ενημερωμένο SitePoint Αναφορά CSS , η οποία είναι η καλύτερη και πιο ολοκληρωμένη αναφορά CSS διαθέσιμη οπουδήποτε.
Στο Firefox 3.x, όταν ένα στοιχείο υπερχειλίσει το περίγραμμα ενός γονέα που έχει το outline
το σύνολο περιουσιακών στοιχείων, το περίγραμμα θα τεντωθεί για να ταιριάζει με το στοιχείο που περιέχει, όπως φαίνεται στην παρακάτω απεικόνιση οθόνης:
Η σωστή εφαρμογή εμφανίζεται στην επόμενη καταγραφή οθόνης που λαμβάνεται από το Chrome:
Όπως φαίνεται παραπάνω, το περίγραμμα θα πρέπει να περικλείει το στοιχείο που περιγράφεται και δεν πρέπει να επηρεάζεται από οποιαδήποτε υπερχείλιση στοιχείων. Για να διασφαλιστεί ότι δεν υπάρχει σύγχυση, σημειώστε ότι αυτό είναι ένα σφάλμα στην εφαρμογή του outline
ιδιοκτησία, όχι το border
ιδιοκτησία.
Αναφορά: Αναφορά CSS SitePoint: περίληψη ιδιότητας
Στο Firefox, όταν ένα τραπέζι έχει τα όριά του collapse
χρησιμοποιώντας την border-collapse
ιδιοκτησίας, τα κορυφαία και τα αριστερά περιθώρια του πίνακα σε σχέση με τα κοντινά στοιχεία είναι 1 pixel off. Αυτό εμφανίζεται σε ένα στιγμιότυπο μεγέθυνσης στην παρακάτω εικόνα, το οποίο εμφανίζει το κάτω όριο ενός στοιχείου σε επίπεδο μπλοκ (κόκκινο) που αγγίζει το επάνω όριο ενός πτυσσόμενου πίνακα (μπλε):
Εδώ είναι η σωστή εφαρμογή αυτού του ζεύγους ιδιότητας / τιμής, όπως φαίνεται στο Chrome:
Όπως φαίνεται παραπάνω, επειδή τα σύνορα είναι "συρρικνωμένα" και επειδή ο πίνακας δεν είναι στοιχείο μπλοκ, θα πρέπει να υπάρχει μια μικρή μετατόπιση στο αριστερό περιθώριο και το πάνω περιθώριο θα πρέπει να είναι ακόμη και με το κάτω όριο του στοιχείου πάνω από αυτό.
Αναφορά: Αναφορά CSS του SitePoint: ιδιότητα κατάρρευσης συνόρων
Αυτή είναι μια τιμή ιδιότητας που δεν εφαρμόζεται σωστά από οποιοδήποτε πρόγραμμα περιήγησης, συμπεριλαμβανομένου του Firefox. Όταν μια σειρά πίνακα δεν έχει ορατό περιεχόμενο και έχουν όλα τα κελιά της empty-cells
ιδιότητα που έχει ρυθμιστεί hide
, ολόκληρη η σειρά θα πρέπει να συμπεριφέρεται σαν να έχει οριστεί σε "εμφάνιση: καμία", χωρίς ορατά σύνορα ή φόντο.
Κανένας περιηγητής δεν χειρίζεται αυτό σωστά, επομένως η σειρά του πίνακα παραμένει ορατή, όπως φαίνεται στην παρακάτω εικόνα.
Αναφορά: Αναφορά CSS του SitePoint: ιδιότητες κενών κελιών
Στο Firefox 3.x, μια αρνητική τιμή στο word-spacing
η ιδιότητα θα αντιμετωπίζεται ως μηδέν σε παρακείμενα ενσωματωμένα στοιχεία. Η αρνητική τιμή θα πρέπει να προκαλεί την αλληλοεπικάλυψη των γραμμικών στοιχείων, όπως συμβαίνει με το κείμενο, αλλά αυτό δεν συμβαίνει. Αντ 'αυτού, τα στοιχεία δίνονται μόλις μηδενικό διαχωρισμό χώρου χωρίς επικάλυψη.
Η παρακάτω εικόνα εμφανίζει τόσο τις σωστές όσο και τις λανθασμένες εφαρμογές:
Στα παραδείγματα που παρουσιάζονται παραπάνω, οι τρεις λέξεις "Φρούτα", "Λαχανικά" και "Άλλα τρόφιμα" συσκευάζονται ξεχωριστά στοιχεία, ενώ η παράγραφος που τα περιβάλλει έχει
word-spacing
η ιδιότητα είναι αρνητική.
Το δεύτερο παράδειγμα (Firefox) δεν εφαρμόζει την απόσταση αρνητικών λέξεων, εκτός από τις δύο τελευταίες λέξεις, επειδή αυτές οι λέξεις δεν τυλίγονται ξεχωριστά από τα διαστήματα, αλλά είναι φυσικά στοιχεία κειμένου.
Ως πλευρικό σημείο, αυτό το σφάλμα παρουσιάζεται παρομοίως στο IE8, αλλά όχι σε προηγούμενες εκδόσεις του IE.
Αναφορά: Αναφορά CSS SitePoint: ιδιότητα αποκοπής λέξεων
Όταν ένα στοιχείο έχει οριστεί τιμή διακόσμησης κειμένου, αυτή η τιμή δεν θα πρέπει να κληρονομηθεί από πλωτούς απογόνους. Στο Firefox 3.x, οι κυμαινόμενοι απόγονοι λαμβάνουν τις ίδιες τιμές διακόσμησης κειμένου με τους γονείς τους, παρόλο που αυτό δεν ισχύει.
Στην παραπάνω εικόνα, η πρώτη γραμμή είναι ένα στιγμιότυπο από το IE8, εμφανίζοντας ένα στοιχείο που επιπλέει μέσα σε μια άγκυρα. Το κείμενο μέσα στο
δεν έχει μια ορατή διακόσμηση κειμένου, η οποία είναι ο σωστός τρόπος για την εμφάνισή της. Στο Firefox (που παρουσιάζεται στο δεύτερο παράδειγμα), η διακόσμηση κειμένου έχει εφαρμοστεί εσφαλμένα στο πλωτό
.
Ενδέχεται να έχετε παρατηρήσει αυτό το σφάλμα στον Firefox όταν προσπαθείτε να αφαιρέσετε την διακόσμηση κειμένου από επιπλέουσες εικόνες μέσα στις άγκυρες.
Αναφορά: Αναφορά CSS SitePoint: ιδιότητα διακόσμησης κειμένου
Χρησιμοποιώντας την white-space
ιδιοκτησίας στον Firefox 3.5, μπορείτε να καθορίσετε αν πρέπει να συρρικνωθούν οι πολλαπλοί χαρακτήρες χώρου σε ένα μόνο διάστημα ή όχι. Από προεπιλογή, τα έγγραφα HTML θα συρρικνώσουν πολλαπλά κενά σε ένα μόνο κενό. Σε ορισμένες περιπτώσεις, μπορείτε να υποβάλετε αίτηση white-space: pre
για να αποφευχθεί η κατάρρευση του λευκού χώρου, κάτι που μοιάζει με τη χρήση του Ετικέτα HTML. Στη συνέχεια, ίσως θέλετε να καταργήσετε τη ρύθμιση χρησιμοποιώντας
white-space: pre-line
(για να συρρικνωθεί ο λευκός χώρος).
Το Firefox 3.0 δεν υποστηρίζει αυτήν την τιμή, οπότε ο λευκός χώρος θα διατηρηθεί. Ο Firefox 3.5 συρρικνώνει σωστά τον χώρο. Η παρακάτω εικόνα δείχνει και τα δύο παραδείγματα:
Ομοίως, όταν έχει οριστεί μια παράγραφος κειμένου white-space: pre-wrap
, αυτό θα πρέπει να διατηρεί τα λευκά διαστήματα μεταξύ των λέξεων, αλλά φυσικά θα πρέπει να περιλαμβάνει διαλείμματα γραμμής. Το Firefox 3.0 αποτυγχάνει να το εφαρμόσει σωστά, ενώ οι μεταγενέστερες εκδόσεις (και όλα τα άλλα προγράμματα περιήγησης) περιλαμβάνουν τα φυσικά σπαστά γραμμών. Και τα δύο παραδείγματα φαίνονται παρακάτω.
Λάβετε υπόψη ότι δίνεται το εξωτερικό στοιχείο white-space: pre
ενώ ένα εσωτερικό προσπαθεί να παρακάμψει την έλλειψη διακοπών γραμμής χρησιμοποιώντας
pre-wrap
. Μόνο του, pre-wrap
δεν θα είχε κανένα αποτέλεσμα.
Το Firefox 3.x αντιμετωπίζει επίσης μερικά από τα white-space
τιμές διαφορετικά από άλλα προγράμματα περιήγησης όταν αυτές οι τιμές εφαρμόζονται στο στοιχείο. Για παράδειγμα, εφαρμόζοντας
white-space: nowrap
θα πρέπει να προκαλέσει όλα τα πληκτρολογημένα σε α για να σχηματίσουν μια γραμμή, αλλά ο Firefox 3.x δεν το κάνει αυτό.
Αναφορά: Αναφορά CSS SitePoint: ιδιότητα λευκού χώρου
Το CSS επιτρέπει στους προγραμματιστές να προσδιορίσουν πού θα έπρεπε ή δεν έπρεπε να εμφανιστούν τα διαλείμματα σελίδας χρησιμοποιώντας τις τρεις ιδιότητες page-break-before
, page-break-inside
, και page-break-after
. Το Opera είναι το μόνο πρόγραμμα περιήγησης που υποστηρίζει πλήρως αυτές τις ιδιότητες, ενώ άλλα προγράμματα περιήγησης προσφέρουν μερική υποστήριξη ή υποστήριξη.
ο page-break-inside
ιδιότητα προσδιορίζει αν μπορεί να εμφανιστεί ή όχι σπάσιμο σελίδας μέσα σε ένα στοιχείο στοιχείου σε επίπεδο μπλοκ. Ο Firefox δεν παρέχει υποστήριξη για αυτήν την ιδιότητα. Χρησιμοποιώντας τη σύνταξη page-break-inside: avoid
, μπορείτε να αποτρέψετε την κατάτμηση ενός στοιχείου κατά την εκτύπωση. Η παρακάτω εικόνα, από μια προεπισκόπηση εκτύπωσης στην Όπερα 10, δείχνει πως η ιδιότητα αυτή μπορεί να αποτρέψει τη διαίρεση μιας μη ταξινομημένης λίστας από δύο σελίδες:
Αντίθετα, κοιτάξτε την παρακάτω εικόνα, που λαμβάνεται από την επιλογή προεπισκόπησης της εκτύπωσης στο Firefox 3.5:
Αναφορά: Αναφορά CSS του SitePoint: Ιδιότητες μέσων σελιδοποίησης
ο orphans
και widows
Οι ιδιότητες CSS υποστηρίζονται μόνο από τον Internet Explorer 8 και την Opera από την έκδοση 9. Αυτή η ιδιότητα χρησιμοποιείται για τον καθορισμό του ελάχιστου αριθμού γραμμών από μία μόνο παράγραφο που μπορεί να εμφανιστεί σε μια εκτυπωμένη σελίδα, είτε στο κάτω μέρος (ορφανά) είτε στην κορυφή ). Ανάλογα με τον επιλεγμένο αριθμό, οι γραμμές θα μετακινηθούν από τη μια σελίδα στην άλλη (ή την προηγούμενη), ώστε να αποφευχθεί η εκτύπωση μιας γραμμής στο πάνω ή στο κάτω μέρος της σελίδας.
Ακόμα και με το orphans
η ιδιότητα που έχει οριστεί σε τιμή "3", όπως φαίνεται στην παρακάτω εικόνα, η προεπισκόπηση εκτύπωσης του Firefox εμφανίζει μια μόνο γραμμή στο κάτω μέρος μιας εκτυπώσιμης σελίδας:
Παρόμοιο με το page-break-inside
ιδιοκτησίας, ο Firefox επίσης δεν υποστηρίζει τις τιμές avoid
, left
, και right
και για τα δύο page-break-before
και page-break-after
ιδιότητες.
Βιβλιογραφικές αναφορές: Αναφορά CSS SitePoint: ιδιότητα ορφανού | Αναφορά CSS SitePoint: ιδιότητες χήρας
ο Ο Internet Explorer 8, το Chrome και το Safari υλοποιούν αυτή τη λειτουργία σωστά, αποτρέποντας την εμφάνιση στοιχείων μπλοκ από το σπάσιμο του στυλ, όπως φαίνεται στην παρακάτω εικόνα: Στην παραπάνω παράγραφο, το κείμενο βρίσκεται μέσα σε ένα Αναφορά: Αναφορά CSS SitePoint: ψευδο-στοιχείο πρώτης γραμμής Ο Firefox προστέθηκε σταδιακά καλύτερη υποστήριξη για το CSS3 από την έκδοση 3.0. Ακολουθεί μια περιγραφή του τρόπου με τον οποίο ο Firefox χειρίζεται διάφορες λειτουργίες του CSS3. Ορισμένα από αυτά μπορεί να βρίσκονται ακόμα στο σχέδιο εργασίας ή υποψήφια σύσταση επομένως δεν μπορούμε να είμαστε δογματικοί ως προς το τι πρέπει και δεν πρέπει να υποστηριχθεί μέχρι να φθάσουν σύσταση στάδιο. Μερικά από τα πιο σημαντικά σφάλματα και ασυμβατότητες συζητήθηκαν παραπάνω, αλλά υπάρχουν μερικά άλλα που αξίζει να σημειώσουμε. Αφού περάσετε από αυτό το υλικό, μπορείτε να δείτε καθαρά ότι η έλλειψη υποστήριξης των χαρακτηριστικών του CSS στον Firefox είναι ελάχιστη και σε πολλές περιπτώσεις δεν έχει σημασία, αφού πολλές από τις ιδιότητες που συζητούνται εδώ δεν χρησιμοποιούνται πολύ συχνά. Παρ 'όλα αυτά, ελπίζω ότι αυτό θα προσφέρει μια αξιοπρεπή αναφορά για τα πιο σημαντικά σφάλματα και ασυνέπειες στον Firefox. Εάν αντιμετωπίζετε προβλήματα με ένα συγκεκριμένο χαρακτηριστικό του CSS στον Firefox που δεν περιλαμβάνεται εδώ, πιθανόν να κάνετε λάθος ή να μην κατανοήσετε πλήρως ορισμένες έννοιες και αρχές CSS. Επομένως, από την άποψη αυτή, αυτή η αναφορά θα πρέπει να λειτουργεί καλά ως αντίστροφη αναφορά , καθώς εκείνοι που δεν αναφέρονται εδώ μπορούν να εμπιστευτούν ότι λειτουργούν καλά αν εφαρμόζονται σωστά με σωστή σύνταξη. Φυσικά, αν υπάρχει κάτι που έχω χάσει ή τυχόν λάθη, παρακαλώ σχολιάστε και θα κάνω το παν για να κάνω τις απαραίτητες διορθώσεις και προσθήκες. Firefox Εικόνα παρέχεται από Rakaz Αυτή η ανάρτηση γράφτηκε αποκλειστικά για το Webdesigner Depot του Louis Lazaris, ανεξάρτητου συγγραφέα και web developer. Ο Λούις τρέχει Εντυπωσιακοί ιστότοποι όπου δημοσιεύει άρθρα και σεμινάρια σχετικά με το σχεδιασμό ιστοσελίδων. Μπορείτε να ακολουθήσετε τον Louis στο Twitter ή να έρθετε σε επαφή μαζί του μέσω της ιστοσελίδας του . :first-line
το ψευδο-στοιχείο επιτρέπει στην πρώτη γραμμή κάθε δεδομένου μπλοκ κειμένου να έχει διαφορετική μορφοποίηση από το υπόλοιπο κείμενο. Για παράδειγμα, η πρώτη γραμμή μιας παραγράφου κειμένου μπορεί να αλλάξει σε κεφαλαία ή σε διαφορετικό χρώμα. Για να λειτουργήσει αυτό το στοιχείο CSS με πρακτικό τρόπο, θα πρέπει να επιτρέψει τη δυνατότητα εμφάνισης στοιχείων στο επίπεδο μπλοκ. Για παράδειγμα, α στοιχείο θα πρέπει να επιτρέπει την
:first-line
ψευδο-στοιχείο για να αλλάξετε το στυλ της πρώτης γραμμής του κειμένου μέσα στο στοιχείο, το οποίο βρίσκεται μέσα σε ένα
έχει το
:first-line
ψευδο-στοιχείο που έχει οριστεί σε color: blue
, το οποίο αποτυγχάνει στον Firefox λόγω της εμφάνισης της παραγράφου μέσα στο Υποστήριξη CSS3 στον Firefox 3.x
text-shadow
ιδιοκτησία box-shadow
ιδιότητα, εκτός από τη χρήση του ιδιόκτητου προθέματος -moz-
box-sizing
ιδιότητα, εκτός από τη χρήση του ιδιόκτητου προθέματος -moz-
-moz-
χρησιμοποιείται border-image
αλλά 3,5 υποστηρίζει τη χρήση του -moz-
ιδιόκτητο πρόθεμα Άλλα χαρακτηριστικά CSS δεν υποστηρίζονται
run-in
για το display
ιδιοκτησία ::selection
ψευδο-στοιχείο συμπέρασμα
Περαιτέρω Αναφορές