Der er ikke mange artikler, der dækker inkompatibiliteter, eller CSS forskelle i Firefox alene - og med god grund.
Firefox har altid gjort et fremragende godt arbejde med at understøtte både CSS og JavaScript på en standard-kompatibel måde uden for mange ubehagelige fejl.
Der er dog nogle få CSS-egenskaber og selektorer, der ikke understøttes af en eller flere af de versioner, der er udgivet siden version 3.0, som jeg vil dække her.
Denne artikel vil dække fejl, inkonsekvenser og ikke-support . Så hvis du har problemer med en CSS-egenskab eller vælger i Firefox, og det ikke er angivet her, så skal du sandsynligvis genoverveje dit layout og genoverveje, hvad skyldige måtte være.
Da Firefox 2 er stort set ikke-eksisterende , Jeg vil ikke overveje denne version specifikt, men disse oplysninger vil som regel normalt gælde for den version.
Og jeg skal bemærke, at materialet til dette indlæg blev taget primært fra nyligt opdaterede SitePoint CSS reference , som er den bedste og mest omfattende CSS-reference til rådighed, hvor som helst.
I Firefox 3.x, når et element overgår grænsen til en forælder, der har outline
ejendomsindstillingen, vil omridset strække sig for at passe til det indeholdende element som vist i nedenstående skærmbillede:
Den korrekte implementering vises i næste skærmbillede taget fra Chrome:
Som vist ovenfor skal omridsen omfatte det element, der skitseres, og bør ikke påvirkes af overfyldte elementer. For at sikre, at der ikke er nogen forvirring, bemærk at dette er en fejl i implementeringen af outline
ejendom, ikke den border
ejendom.
Reference: SitePoint CSS Reference: disposition Ejendom
I Firefox, når et bord har sine grænser sat til collapse
bruger border-collapse
ejendom er bordets øverste og venstre margen i forhold til nærliggende elementer 1 pixel fra. Dette vises i et indsnitsbillede i billedet nedenfor, der viser nederste kant på et blokniveauelement (rødt), der rører den øverste grænse af et sammenbrudt bord (blå):
Her er den korrekte implementering af dette property / value pair, som vist i Chrome:
Som vist ovenfor, fordi grænserne er "sammenbrudt", og fordi bordet ikke er et blokelement, skal der være en lille forskydning i venstre margen, og topmargenen skal være lige med den nederste kant af elementet over den.
Reference: SitePoint CSS Reference: border-collapse Ejendom
Dette er en ejendomsværdi, der ikke implementeres korrekt af enhver browser, herunder Firefox. Når en bordrække ikke har noget synligt indhold, og alle dets celler har deres empty-cells
ejendom sat til hide
, hele rækken skal opføre sig som om den var sat til "display: none", uden grænser eller baggrunde synlige.
Ingen browser håndterer dette korrekt, så bordrækken er stadig synlig, som vist på billedet nedenfor.
Reference: SitePoint CSS Reference: Tomceller Ejendom
I Firefox 3.x, en negativ værdi på word-spacing
ejendom vil blive behandlet som nul på tilstødende inline elementer. Den negative værdi skal medføre, at inlineelementerne overlapper hinanden, som det ville være tilfældet med tekst, men det sker ikke. I stedet er elementerne netop givet nul hvide rumseparation uden overlapning.
Billedet nedenfor viser både de korrekte og forkerte implementeringer:
I eksemplerne vist ovenfor er de tre ord "Frugter", "Grøntsager" og "Andre fødevarer" indpakket individuelt elementer, mens det afsnit, der ombryder dem, har dets
word-spacing
ejendom sat til en negativ værdi.
Det andet eksempel (Firefox) undlader at anvende den negative ordafstand, undtagen mellem de sidste to ord, fordi disse ord ikke er individuelt indpakket af spændinger, men er naturlige tekstelementer.
Som et sidepunkt forekommer denne fejl ligeledes i IE8, men ikke i tidligere versioner af IE.
Reference: SitePoint CSS Reference: Ord-afstand Ejendom
Når et element har et sæt sæt tekstdekoration, bør denne værdi ikke arves af flydende efterkommere. I Firefox 3.x får flydende efterkommere de samme tekstindsmykningsværdier som deres forælder, selvom det ikke burde være tilfældet.
I billedet ovenfor er den første linje et skærmbillede fra IE8, der viser en elementet floated inde i et anker. Teksten inde i
har ikke en synlig tekstdekoration, som er den rigtige måde at vise den på. I Firefox (vist i andet eksempel) er tekstdekorationen forkert anvendt til den flydende
.
Du har måske bemærket denne fejl i Firefox, når du forsøger at fjerne tekstdekorationen fra flydende billeder indenfor ankre.
Reference: SitePoint CSS Reference: tekst-dekoration Ejendom
Bruger white-space
ejendom i Firefox 3.5, kan du angive, om flere mellemrumstegn skal collapse ned til et enkelt rum eller ej. Som standard vil HTML-dokumenter kollapse flere mellemrum ned til et enkelt rum. I nogle tilfælde kan du søge white-space: pre
for at forhindre hvide rum i at blive sammenbrudt, hvilket svarer til brugen af HTML-tag. Efterfølgende kan du fjerne denne indstilling ved hjælp af
white-space: pre-line
(for at kollapse det hvide rum).
Firefox 3.0 understøtter ikke denne værdi, så det hvide rum bevares. Firefox 3.5 kollapser pladsen korrekt. Billedet nedenfor viser begge eksempler:
Tilsvarende, når et tekststykke er indstillet til white-space: pre-wrap
, dette bør bevare hvide mellemrum mellem ord, men bør naturligvis omfatte linjeskift. Firefox 3.0 undlader at gennemføre dette korrekt, mens nyere versioner (og alle andre browsere) indeholder naturlinjepauserne. Begge eksempler er vist nedenfor.
Husk at det ydre element er givet white-space: pre
mens en indre forsøger at tilsidesætte manglen på linjeskift ved hjælp af
pre-wrap
. På egen hånd pre-wrap
ville ikke have nogen virkning.
Firefox 3.x behandler også nogle af de white-space
Værdierne er forskellige fra andre browsere, når disse værdier anvendes til element. For eksempel ansøger
white-space: nowrap
bør forårsage al tekst i en at danne en linje, men Firefox 3.x gør det ikke.
Reference: SitePoint CSS Reference: White-Space Property
CSS giver udviklere mulighed for at angive, hvor sideskift skal eller ikke skal forekomme ved hjælp af de tre egenskaber page-break-before
, page-break-inside
, og page-break-after
. Opera er den eneste browser, der understøtter disse egenskaber fuldt ud, mens andre browsere tilbyder delvis support eller ingen support.
Det page-break-inside
Egenskaben specificerer om en sideskift kan forekomme inde i et enkelt blokniveau element. Firefox understøtter ikke denne ejendom. Brug af syntaksen page-break-inside: avoid
, kan du forhindre et element i at blive delt under udskrivning. Billedet nedenfor, fra et forhåndsvisning i Opera 10, viser, hvordan denne ejendom kan forhindre, at en uordnet liste deles over to sider:
Derimod skal du se på billedet nedenfor, taget fra forhåndsvisningsmodellen i Firefox 3.5:
Reference: SitePoint CSS Reference: Paged Media Properties
Det orphans
og widows
CSS-egenskaber understøttes kun af Internet Explorer 8 og Opera siden version 9. Denne egenskab bruges til at angive det mindste antal linjer fra et enkelt afsnit, der kan forekomme på en udskrevet side, enten nederst (forældreløse) eller toppen (enker ). Afhængigt af det valgte nummer flyttes linjer fra en side til den næste (eller tidligere) for at forhindre, at en enkelt linje udskrives øverst eller nederst på en side.
Selv med orphans
Egenskaben er indstillet til en værdi på "3" som vist på billedet nedenfor. Firefox's forhåndsvisning viser en enkelt linje nederst på et af de udskrivbare sider:
Ligner på page-break-inside
ejendom, understøtter Firefox heller ikke værdierne avoid
, left
, og right
for begge page-break-before
og page-break-after
ejendomme.
Referencer: SitePoint CSS Reference: Forældreløse Ejendomme | SitePoint CSS Reference: Enke Ejendom
Det Internet Explorer 8, Chrome og Safari implementerer denne funktion korrekt, hvilket forhindrer, at blokering af blokelementer bryder stylingen, som vist på billedet nedenfor: I ovenstående afsnit er teksten inde i a Reference: SitePoint CSS Reference: first-line Pseudo-Element Firefox har gradvist tilføjet bedre support til CSS3 siden udgivelsen af version 3.0. Nedenfor er en beskrivelse af, hvordan Firefox håndterer forskellige funktioner i CSS3. Nogle af disse kan stadig være i arbejder udkast eller kandidat henstilling fase, derfor kan vi ikke være dogmatiske om, hvad der skal og bør ikke støttes, før de har nået henstilling scene. Nogle af de mere signifikante fejl og inkompatibiliteter blev diskuteret ovenfor, men der er et par andre værd at bemærke. Efter at have gennemgået dette materiale kan du tydeligt se, at manglende understøttelse af CSS-funktioner i Firefox er minimal og i mange tilfælde ret irrelevant, da mange af de her omtalte egenskaber ikke er meget almindeligt anvendt. Ikke desto mindre håber jeg, at dette vil give en anstændig reference til de mest signifikante fejl og uoverensstemmelser i Firefox. Hvis du har problemer med et bestemt element i CSS i Firefox, der ikke er angivet her, er chancerne for, at du laver noget forkert eller måske ikke fuldt ud forstår visse CSS-koncepter og principper. Så i den henseende bør denne reference fungere som en omvendt reference , da de, der ikke er angivet her, kan have tillid til at fungere fint, hvis de implementeres korrekt med korrekt syntaks. Selvfølgelig, hvis der er noget, jeg har savnet, eller nogen fejl, vær venlig at kommentere, og jeg vil gøre mit bedste for at foretage de nødvendige korrektioner og tilføjelser. Firefox billede leveret af Rakaz Dette indlæg blev udelukkende skrevet til Webdesigner Depot af Louis Lazaris, freelance skribent og webudvikler. Louis løber Imponerende Webs hvor han stiller artikler og vejledninger om webdesign. Du kan følge Louis på Twitter eller komme i kontakt med ham gennem hans hjemmeside . :first-line
pseudo-elementet gør det muligt for den første linje i en given tekstblok at have forskellig formatering fra resten af teksten. For eksempel kan den første linje i et stykke tekst ændres til store bogstaver eller til en anden farve. For at dette CSS element skal fungere på en praktisk måde, bør den muliggøre muligheden for indlejrede blokniveauelementer. For eksempel a element skal tillade
:first-line
pseudo-element for at ændre stilingen af den første linie med tekst inde i element, der ligger inde i a
har
:first-line
pseudo-element indstillet til color: blue
, som fejler i Firefox på grund af nestingen af stykket inde i CSS3 Support i Firefox 3.x
text-shadow
ejendom box-shadow
ejendom, undtagen når du bruger det proprietære præfiks -moz-
box-sizing
ejendom, undtagen når du bruger det proprietære præfiks -moz-
-moz-
anvendes border-image
ejendom, men 3.5 understøtter det ved hjælp af -moz-
proprietært præfiks Andre CSS-funktioner understøttes ikke
run-in
for display
ejendom ::selection
pseudo-element Konklusion
Yderligere referencer