Er zijn niet veel artikelen over onverenigbaarheden of CSS-verschillen in Firefox alleen - en niet zonder reden.
Firefox heeft altijd uitstekend werk verricht door zowel CSS als JavaScript te ondersteunen op een manier die voldoet aan de standaarden zonder al te lastige bugs.
Er zijn echter enkele CSS-eigenschappen en selectors die niet worden ondersteund door een of meer van de versies die zijn uitgebracht sinds versie 3.0., Die ik hier zal behandelen.
Dit artikel behandelt bugs, inconsistenties en niet-ondersteuning . Dus als u problemen ondervindt met een CSS-eigenschap of selector in Firefox en deze staat hier niet vermeld, dan zult u waarschijnlijk uw lay-out opnieuw moeten bekijken en opnieuw moeten bekijken wat de boosdoener zou kunnen zijn.
Aangezien Firefox 2 virtueel is niet bestaand , Ik zal die versie niet specifiek overwegen, maar deze informatie is standaard standaard op die versie van toepassing.
En ik moet opmerken dat het materiaal voor deze post voornamelijk afkomstig was van de onlangs bijgewerkt SitePoint CSS-referentie , dat is de beste en meest uitgebreide CSS-referentie die overal beschikbaar is.
In Firefox 3.x, wanneer een element de rand van een ouder overschrijdt die de outline
eigenschappenset, de omtrek zal uitrekken om te passen in het element dat het bevat, zoals weergegeven in de schermafdruk hieronder:
De juiste implementatie wordt weergegeven in de volgende schermopname uit Chrome:
Zoals hierboven is weergegeven, moet de omtrek het element omvatten dat wordt geschetst en mag dit niet worden beïnvloed door overlopende elementen. Om er zeker van te zijn dat er geen verwarring is, merk op dat dit een bug is bij de implementatie van de outline
eigendom, niet het border
eigendom.
Referentie: SitePoint CSS Reference: outline Property
In Firefox, wanneer een tabel is ingesteld op collapse
de ... gebruiken border-collapse
eigenschap, de bovenste en linkermarges van de tabel ten opzichte van nabije elementen is 1 pixel uit. Dit wordt weergegeven in een ingezoomd screenshot in de onderstaande afbeelding, die de onderrand van een element op blokniveau (rood) weergeeft dat de bovenrand van een samengevouwen tabel raakt (blauw):
Dit is de juiste implementatie van dit kenmerk / waarde-paar, zoals weergegeven in Chrome:
Zoals hierboven is weergegeven, omdat de randen zijn samengevouwen en omdat de tabel geen blokelement is, moet er een kleine verschuiving in de linkermarge zijn en moet de bovenrand gelijk zijn met de onderrand van het element erboven.
Referentie: SitePoint CSS Reference: border-collapse Property
Dit is een eigenschapswaarde die niet goed is geïmplementeerd door een browser, inclusief Firefox. Wanneer een tabelrij geen zichtbare inhoud heeft en alle cellen hun empty-cells
eigenschap ingesteld op hide
, de hele rij moet zich gedragen alsof deze is ingesteld op "display: none", zonder randen of achtergronden zichtbaar.
Geen enkele browser verwerkt dit correct, dus de tabelrij is nog steeds zichtbaar, zoals in de onderstaande afbeelding.
Referentie: SitePoint CSS Reference: lege cellen Eigenschap
In Firefox 3.x, een negatieve waarde op de word-spacing
eigenschap wordt behandeld als nul op aangrenzende inline-elementen. De negatieve waarde moet ervoor zorgen dat de inline-elementen elkaar overlappen, zoals het geval zou zijn met tekst, maar dit gebeurt niet. In plaats daarvan krijgen de elementen slechts nul witruimtescheiding zonder overlap.
De afbeelding hieronder toont zowel de juiste als de incorrecte implementaties:
In de bovenstaande voorbeelden worden de drie woorden "Fruit", "Groenten" en "Andere voedingsmiddelen" afzonderlijk ingepakt elementen, terwijl de alinea die ze omsluit zijn zijn
word-spacing
eigenschap ingesteld op een negatieve waarde.
In het tweede voorbeeld (Firefox) kan de negatieve woordspatiëring niet worden toegepast, behalve tussen de laatste twee woorden, omdat die woorden niet individueel zijn ingepakt in spaties, maar natuurlijke tekstelementen zijn.
Als bijzaak komt deze bug op dezelfde manier voor in IE8, maar niet in eerdere versies van IE.
Referentie: SitePoint CSS Reference: property voor woordtussenruimten
Wanneer een element een waarde voor tekstdecoratie heeft ingesteld, mag die waarde niet worden overgenomen door zwevende afstammelingen. In Firefox 3.x krijgen zwevende nakomelingen dezelfde tekstversieringswaarden als hun bovenliggende elementen, hoewel dit niet het geval zou moeten zijn.
In de afbeelding hierboven is de eerste regel een screenshot van IE8, met een element dreef in een anker. De tekst in de
heeft geen zichtbare tekstdecoratie, wat de juiste manier is om het weer te geven. In Firefox (weergegeven in het tweede voorbeeld) wordt de tekstdecoratie onjuist toegepast op zwevend
.
Mogelijk hebt u deze fout in Firefox opgemerkt bij het verwijderen van de tekstdecoratie uit zwevende afbeeldingen in ankers.
Referentie: SitePoint CSS Reference: text-decoration Eigenschap
De ... gebruiken white-space
eigenschap in Firefox 3.5, kunt u opgeven of meerdere spaties moeten worden samengevouwen tot één spatie of niet. HTML-documenten vouwen standaard meerdere spaties samen tot één spatie. In sommige gevallen kunt u zich aanmelden white-space: pre
om te voorkomen dat witte ruimte wordt samengevouwen, wat vergelijkbaar is met het gebruik van de HTML-tag. Vervolgens wilt u misschien die instelling verwijderen met
white-space: pre-line
(om witte ruimte samen te vouwen).
Firefox 3.0 ondersteunt deze waarde niet, dus de witte ruimte wordt behouden. Firefox 3.5 vouwt de ruimte correct in. De onderstaande afbeelding toont beide voorbeelden:
Evenzo, wanneer een alinea van de tekst is ingesteld op white-space: pre-wrap
, dit zou witte spaties moeten behouden tussen woorden, maar zou natuurlijk ook regeleinden moeten bevatten. Firefox 3.0 kan dit niet correct implementeren, terwijl latere versies (en alle andere browsers) de natuurlijke regeleinden bevatten. Beide voorbeelden worden hieronder getoond.
Houd er rekening mee dat het buitenste element wordt gegeven white-space: pre
terwijl een innerlijke probeert het ontbreken van regeleinden te onderdrukken
pre-wrap
. Op zichzelf, pre-wrap
zou geen enkel effect hebben.
Firefox 3.x behandelt ook enkele van de white-space
waarden verschillend van andere browsers wanneer die waarden worden toegepast op de element. Bijvoorbeeld, toepassen
white-space: nowrap
moet alle getypte tekst in een om een regel te vormen, maar Firefox 3.x doet dit niet.
Referentie: SitePoint CSS Reference: white-space Property
Met CSS kunnen ontwikkelaars opgeven waar pagina-einden wel of niet moeten plaatsvinden met behulp van de drie eigenschappen page-break-before
, page-break-inside
, en page-break-after
. Opera is de enige browser die deze eigenschappen volledig ondersteunt, terwijl andere browsers gedeeltelijke ondersteuning of geen ondersteuning bieden.
De page-break-inside
eigenschap geeft aan of een pagina-einde al dan niet mag plaatsvinden binnen een enkel element op blokniveau. Firefox biedt geen ondersteuning voor deze eigenschap. De syntaxis gebruiken page-break-inside: avoid
, kunt u voorkomen dat een element tijdens het afdrukken wordt verdeeld. De afbeelding hieronder, uit een afdrukvoorbeeld in Opera 10, laat zien hoe deze eigenschap kan voorkomen dat een ongeordende lijst over twee pagina's wordt verdeeld:
Bekijk daarentegen de afbeelding hieronder, afkomstig van de afdrukvoorbeeldoptie in Firefox 3.5:
Referentie: SitePoint CSS Reference: Paged Media Properties
De orphans
en widows
CSS-eigenschappen worden alleen ondersteund door Internet Explorer 8 en Opera sinds versie 9. Deze eigenschap wordt gebruikt om het minimumaantal regels van een enkele alinea op te geven dat op een afgedrukte pagina kan voorkomen, onderaan (wezen) of bovenaan (weduwen ). Afhankelijk van het gekozen nummer, worden lijnen van de ene pagina naar de volgende (of vorige) verplaatst om te voorkomen dat een enkele regel bovenaan of onderaan een pagina wordt afgedrukt.
Zelfs met de orphans
eigenschap ingesteld op een waarde van "3", zoals weergegeven in de onderstaande afbeelding, toont het afdrukvoorbeeld van Firefox een enkele regel onderaan een van de afdrukbare pagina's:
Vergelijkbaar met de page-break-inside
eigenschap, Firefox ondersteunt ook de waarden niet avoid
, left
, en right
voor zowel de page-break-before
en page-break-after
eigenschappen.
Referenties: SitePoint CSS Referentie: wezen van wezen | SitePoint CSS Reference: widows Property
De Internet Explorer 8, Chrome en Safari implementeren deze functie op de juiste manier, waardoor wordt voorkomen dat blokelementen de stijl gaan doorbreken, zoals weergegeven in de afbeelding hieronder: In de bovenstaande paragraaf staat de tekst in a Referentie: SitePoint CSS-referentie: eerstelijns pseudo-element Firefox heeft geleidelijk betere ondersteuning voor CSS3 toegevoegd sinds de release van versie 3.0. Hieronder volgt een beschrijving van de manier waarop Firefox omgaat met verschillende functies van CSS3. Sommige hiervan kunnen nog steeds in de werkversie of kandidaat-aanbeveling stadium, daarom kunnen we niet dogmatisch zijn over wat wel en niet moet worden ondersteund voordat ze de aanbeveling stadium. Enkele van de meer significante bugs en incompatibiliteiten zijn hierboven besproken, maar er zijn een paar andere vermeldenswaard. Nadat je dit materiaal hebt doorgenomen, kun je duidelijk zien dat het gebrek aan ondersteuning van CSS-functies in Firefox minimaal is en in veel gevallen vrij irrelevant omdat veel van de eigenschappen die hier worden besproken, niet vaak worden gebruikt. Desalniettemin hoop ik dat dit een goede referentie zal zijn voor de belangrijkste bugs en inconsistenties in Firefox. Als u problemen ondervindt met een bepaalde functie van CSS in Firefox die hier niet wordt vermeld, is de kans groot dat u iets verkeerd doet of bepaalde CSS-concepten en -principes misschien niet volledig begrijpt. Dus in dat opzicht zou deze verwijzing goed moeten werken als een omgekeerde referentie , omdat degenen die hier niet worden vermeld betrouwbaar kunnen werken als ze correct met de juiste syntaxis zijn geïmplementeerd. Natuurlijk, als er iets is dat ik heb gemist, of fouten, reageer dan alsjeblieft en ik zal mijn best doen om de nodige correcties en toevoegingen aan te brengen. Firefox-afbeelding geleverd door Rakaz Dit bericht is exclusief geschreven voor Webdesigner Depot door Louis Lazaris, een freelance schrijver en webontwikkelaar. Louis rent Indrukwekkende webs waar hij artikelen en tutorials over webdesign plaatst. Je kunt Louis volgen op Twitter of neem contact op met hem via zijn website . :first-line
Met pseudo-element kan de eerste regel van een bepaald tekstblok een andere opmaak hebben dan de rest van de tekst. De eerste regel van een alinea van de tekst kan bijvoorbeeld worden gewijzigd in hoofdletters of in een andere kleur. Om dit CSS-element op een praktische manier te laten werken, zou het de mogelijkheid moeten bieden om geneste block-level elementen te gebruiken. Bijvoorbeeld a element zou het moeten toestaan
:first-line
pseudo-element om de stijl van de eerste regel tekst in de element, dat zich in een a bevindt
heeft de
:first-line
pseudo-element ingesteld op color: blue
, wat niet lukt in Firefox vanwege het nesten van de alinea in de CSS3-ondersteuning in Firefox 3.x
text-shadow
eigendom box-shadow
eigenschap, behalve bij gebruik van het prefix -moz-
box-sizing
eigenschap, behalve bij gebruik van het prefix -moz-
-moz-
is gebruikt border-image
eigenschap, maar 3.5 ondersteunt het met behulp van de -moz-
eigen prefix Andere CSS-functies worden niet ondersteund
run-in
voor de display
eigendom ::selection
pseudo-element Conclusie
Verdere referenties