Det er ikke mange artikler som dekker uforlikeligheter, eller CSS-forskjeller i Firefox alene - og med god grunn.
Firefox har alltid gjort en utmerket god jobb med å støtte både CSS og JavaScript på en standard-kompatibel måte uten for mange vanskelige feil.
Det er imidlertid noen få CSS-egenskaper og selektorer som ikke støttes av en eller flere versjoner som er utgitt siden versjon 3.0, som jeg vil dekke her.
Denne artikkelen vil dekke feil, inkonsekvenser og ikke-støtte . Så hvis du har problemer med en CSS-egenskap eller -selektor i Firefox, og det ikke er oppført her, må du sannsynligvis revurdere oppsettet ditt og revurdere hva skyldige kan være.
Siden Firefox 2 er nesten ikke-eksisterende , Jeg vil ikke vurdere denne versjonen spesifikt, men denne informasjonen vil vanligvis gjelde for den versjonen som standard.
Og jeg bør merke at materialet til dette innlegget ble tatt hovedsakelig fra nylig oppdatert Sitepoint CSS referanse , som er hands-down den beste og mest omfattende CSS referansen tilgjengelig hvor som helst.
I Firefox 3.x, når et element overgår grensen til en forelder som har outline
egenskapssettet, vil omrisset strekke seg slik at det passer til det inneholdende elementet, som vist i skjermbildet nedenfor:
Den riktige implementeringen vises i neste skjermbilde tatt fra Chrome:
Som vist ovenfor skal omrisset omfatte elementet som er skissert, og bør ikke påvirkes av overfylte elementer. For å sikre at det ikke er noen forvirring, merk at dette er en feil i implementeringen av outline
eiendom, ikke den border
eiendom.
Henvisning: SitePoint CSS Reference: disposisjon Eiendom
I Firefox, når et bord har sine grenser satt til collapse
bruker border-collapse
eiendom, tabellens topp og venstre marginer i forhold til nærliggende elementer er 1 pixel av. Dette vises i et skjermdump som er innstilt i bildet under, som viser den nederste grensen til et blokknivåelement (rødt) som berører den øvre grensen til et sammenbruddstabell (blå):
Her er riktig implementering av dette egenskaps- / verdiparet, som vist i Chrome:
Som vist ovenfor, fordi grensene er "kollapset", og fordi bordet ikke er et blokkelement, bør det være en liten forskyvning i venstre marg, og toppmargenen skal være jevn med den nederste grensen til elementet over den.
Henvisning: SitePoint CSS Reference: border-collapse Eiendom
Dette er en eiendomsverdi som ikke implementeres riktig av en hvilken som helst nettleser, inkludert Firefox. Når en tabellrad ikke har synlig innhold og alle cellene har sine empty-cells
eiendom satt til hide
, hele raden skal oppføre seg som om den var satt til "display: none", uten grenser eller bakgrunner synlige.
Ingen nettleser håndterer dette riktig, så tabellraden er fortsatt synlig, som vist på bildet nedenfor.
Henvisning: SitePoint CSS Reference: Tom-celler Egenskap
I Firefox 3.x, en negativ verdi på word-spacing
Egenskapen vil bli behandlet som null på tilstøtende inlineelementer. Den negative verdien skal føre til at inlineelementene overlapper hverandre, som det ville være tilfelle med tekst, men dette skjer ikke. I stedet blir elementene bare gitt null hvit mellomrom uten overlapping.
Bildet nedenfor viser både de korrekte og feilaktige implementasjonene:
I eksemplene vist ovenfor blir de tre ordene "Fruits", "Vegetables" og "Other Foods" individuelt pakket inn i elementer, mens avsnittet som bryter dem har det
word-spacing
eiendom satt til en negativ verdi.
Det andre eksempelet (Firefox) mislykkes i å bruke det negative ordavstanden, unntatt mellom de to siste ordene fordi disse ordene ikke er individuelt innpakket av strekker, men er naturlige tekstelementer.
Som et sidepunkt skjer denne feilen på samme måte i IE8, men ikke i tidligere versjoner av IE.
Henvisning: SitePoint CSS Referanse: Ord-avstand Eiendom
Når et element har en tekstdekorasjonsverdi, må denne verdien ikke arves av flytende etterkommere. I Firefox 3.x får flytende etterkommere de samme tekstdekorasjonsverdiene som foreldrene deres, selv om dette ikke burde være tilfelle.
I bildet over er første linjen et skjermbilde fra IE8, som viser en elementet svømte inn i et anker. Teksten inne i
har ikke en synlig tekstdekorasjon, som er den riktige måten å vise den på. I Firefox (vist i det andre eksempelet) er tekstdekorasjonen feil brukt på flytende
.
Du har kanskje lagt merke til denne feilen i Firefox når du prøver å fjerne tekstdekorasjonen fra flytende bilder inni ankre.
Henvisning: SitePoint CSS Referanse: tekst-dekorasjon Eiendom
Bruker white-space
egenskap i Firefox 3.5, kan du angi om flere mellomromstegn skal kollapses ned til et enkelt mellomrom eller ikke. Som standard vil HTML-dokumenter kollapse flere mellomrom ned til et enkelt mellomrom. I noen tilfeller kan du søke white-space: pre
for å hindre at hvitt rom blir kollapset, noe som ligner på bruken av HTML-tagg. Deretter vil du kanskje fjerne denne innstillingen ved hjelp av
white-space: pre-line
(for å kollapse hvitt mellomrom).
Firefox 3.0 støtter ikke denne verdien, så den hvite plassen blir beholdt. Firefox 3.5 kollapser plassen riktig. Bildet nedenfor viser begge eksemplene:
Tilsvarende, når et avsnitt med tekst er satt til white-space: pre-wrap
, dette bør bevare hvite mellomrom mellom ord, men bør naturligvis inkludere linjeskift. Firefox 3.0 klarer ikke å implementere dette riktig, mens nyere versjoner (og alle andre nettlesere) inkluderer naturlinjepausene. Begge eksemplene er vist nedenfor.
Husk at ytre elementet er gitt white-space: pre
mens en indre forsøker å overstyre mangelen på linjeskift ved hjelp av
pre-wrap
. På egen hånd, pre-wrap
ville ikke ha noen effekt.
Firefox 3.x behandler også noen av white-space
verdier annerledes enn andre nettlesere når disse verdiene blir brukt på element. For eksempel, søker
white-space: nowrap
bør føre til at all skrevet tekst i en for å danne en linje, men Firefox 3.x gjør ikke dette.
Henvisning: SitePoint CSS Reference: White-Space Property
CSS lar utviklere spesifisere hvor sideskift skal eller ikke skal forekomme ved hjelp av de tre egenskapene page-break-before
, page-break-inside
, og page-break-after
. Opera er den eneste nettleseren som fullt ut støtter disse egenskapene, mens andre nettlesere tilbyr delvis støtte eller ingen støtte.
De page-break-inside
Egenskapen angir hvorvidt en sideskift kan forekomme i et enkelt blokknivåelement. Firefox gir ikke støtte for denne egenskapen. Bruke syntaksen page-break-inside: avoid
, kan du forhindre at et element deles under utskrift. Bildet nedenfor, fra en forhåndsvisning i Opera 10, viser hvordan denne egenskapen kan forhindre at en uordnet liste deles over to sider:
I kontrast, se på bildet nedenfor, hentet fra forhåndsvisningsalternativet i Firefox 3.5:
Henvisning: SitePoint CSS Reference: Paged Media Properties
De orphans
og widows
CSS egenskaper støttes kun av Internet Explorer 8 og Opera siden versjon 9. Denne egenskapen brukes til å angi minimum antall linjer fra ett enkelt avsnitt som kan forekomme på en utskrevet side, enten nederst (foreldreløse) eller toppen (enker ). Avhengig av det valgte nummeret flyttes linjene fra en side til den neste (eller forrige) for å forhindre at en enkelt linje skrives ut øverst eller nederst på en side.
Selv med orphans
Eiendom satt til en verdi på "3", som vist på bildet nedenfor, viser Firefox forhåndsvisning en enkelt linje nederst på en av de utskrivbare sidene:
Ligner på page-break-inside
Egenskapen, Firefox, klarer heller ikke å støtte verdiene avoid
, left
, og right
for begge page-break-before
og page-break-after
egenskaper.
referanser: SitePoint CSS Reference: foreldreløsning | SitePoint CSS Referanse: Enker Eiendom
De Internet Explorer 8, Chrome og Safari implementerer denne funksjonen på riktig måte, slik at blokkering av blokkelementer ikke bryter med stylingen, som vist på bildet nedenfor: I avsnittet ovenfor er teksten inne i a Henvisning: SitePoint CSS Referanse: Pseudo-Element i første linje Firefox har gradvis lagt til bedre støtte for CSS3 siden utgivelsen av versjon 3.0. Nedenfor er en beskrivelse av hvordan Firefox håndterer ulike funksjoner i CSS3. Noen av disse kan fortsatt være i arbeider utkast eller kandidat anbefaling scenen, derfor kan vi ikke være dogmatiske om hva som burde og ikke burde støttes før de har nådd anbefaling scene. Noen av de mer signifikante feilene og inkompatibilitetene ble diskutert ovenfor, men det er noen få andre verdt å merke seg. Etter at du har gått gjennom dette materialet, kan du tydelig se at mangel på støtte til CSS-funksjoner i Firefox er minimal, og i mange tilfeller ganske irrelevant siden mange av egenskapene som diskuteres her, ikke er veldig vanlig. Likevel håper jeg dette vil gi en anstendig referanse for de mest signifikante feilene og inkonsekvensene i Firefox. Hvis du har problemer med en bestemt funksjon av CSS i Firefox, som ikke er oppført her, er det sjansene for at du gjør noe galt eller kanskje ikke fullt ut forstår visse CSS-konsepter og prinsipper. Så i den forbindelse bør denne referansen fungere som en omvendt referanse , siden de som ikke er oppført her, kan stole på at de fungerer bra hvis de implementeres riktig med riktig syntaks. Selvfølgelig, hvis det er noe jeg har gått glipp av, eller noen feil, vær så snill å kommentere, og jeg vil gjøre mitt beste for å gjøre eventuelle nødvendige korreksjoner og tillegg. Dette innlegget ble skrevet utelukkende for Webdesigner Depot av Louis Lazaris, frilansskribent og webutvikler. Louis løper Imponerende Webs hvor han legger inn artikler og opplæringsprogrammer på webdesign. Du kan følge Louis på Twitter eller ta kontakt med ham gjennom hans nettside . :first-line
pseudo-elementet tillater at den første linjen i en hvilken som helst tekstblokk har forskjellig formatering fra resten av teksten. For eksempel kan den første linjen i et tekststykke bli endret til store versjoner eller til en annen farge. For at dette CSS-elementet skal fungere på en praktisk måte, bør den muliggjøre muligheten for nestede blokknivåelementer. For eksempel a elementet bør tillate
:first-line
pseudo-element for å endre stylingen av den første linjen med tekst inni element som ligger inne i a
har
:first-line
pseudo-element satt til color: blue
, som feiler i Firefox på grunn av nestingen av avsnittet inne i CSS3-støtte i Firefox 3.x
text-shadow
eiendom box-shadow
eiendom, unntatt når du bruker det proprietære prefikset -moz-
box-sizing
eiendom, unntatt når du bruker det proprietære prefikset -moz-
-moz-
benyttes border-image
eiendom, men 3.5 støtter det ved hjelp av -moz-
proprietært prefiks Andre CSS-funksjoner støttes ikke
run-in
for display
eiendom ::selection
pseudo-element Konklusjon
Ytterligere referanser