Neexistuje mnoho článků, které by pokrývaly neslučitelnosti, nebo CSS rozdíly ve Firefoxu samotném - a z dobrého důvodu.
Firefox se vždycky skvěle staral o to, aby podporoval jak CSS, tak i JavaScript v souladu s normami, aniž by bylo příliš mnoho nepříjemných chyb.
Existuje však několik vlastností a voličů CSS, které nejsou podporovány jednou nebo více verzemi uvolněnými od verze 3.0, které zde pokryji.
Tento článek bude obsahovat chyby, nesrovnalosti a nepodporování . Takže pokud máte potíže s vlastností nebo volbou CSS ve Firefoxu a není zde uvedena, pravděpodobně budete muset přehodnotit rozvržení a znovu zvážit, co může být viníkem.
Vzhledem k tomu, že Firefox 2 je prakticky neexistující , Tuto verzi konkrétně nebudou zvažovat, ale tyto informace se ve výchozím nastavení vztahují na tuto verzi.
A musím poznamenat, že materiál pro tento post byl převzat především z nově aktualizované SitePoint CSS reference , což je nejlepší a nejobsáhlejší odkaz CSS dostupný kdekoli.
Ve Firefoxu 3.x, když prvek přetéká okraj rodiče, který má outline
sadu vlastností, obrys se natáhne tak, aby odpovídal obsahu prvku, jak je znázorněno na snímku obrazovky níže:
Správná implementace se zobrazuje v dalším snímání obrazovky převzatém z Chromu:
Jak je uvedeno výše, obrys by měl zahrnovat element, který je načrtnut a neměl by být ovlivněn žádnými přetečkami. Aby nedošlo k záměně, poznamenat, že se jedná o chybu při implementaci outline
vlastnost, nikoliv border
vlastnictví.
Odkaz: Reference SitePoint CSS: Vlastnost náčrtu
Ve Firefoxu, kdy je tabulka nastavena na hranice collapse
za použití border-collapse
vlastnost, horní a levé okraje tabulky ve vztahu k blízkým prvkům jsou 1 pixel vypnuty. Toto je zobrazeno na zvětšeném snímku obrazovky na obrázku níže, který zobrazuje dolní okraj prvku na úrovni bloku (červený), který se dotýká horního okraje sbaleného tabulky (modrý):
Zde je správná implementace tohoto páru vlastností / hodnot, jak je zobrazeno v prohlížeči Chrome:
Jak je uvedeno výše, protože hranice jsou "sbalené" a protože tabulka není blokovým prvkem, měl by být v levém okraji malý posun a horní okraj by měl být dokonce i se spodním okrajem prvku nad ním.
Odkaz: Reference SitePoint CSS: vlastnost sblížení okrajů
Toto je hodnota vlastností, která není správně implementována žádným prohlížečem, včetně prohlížeče Firefox. Pokud řádek tabulky nemá žádný viditelný obsah a všechny její buňky mají své empty-cells
vlastnost nastavena na hide
, celý řádek by se měl chovat tak, jako kdyby byl nastaven na hodnotu "zobrazit: žádný", aniž by byly viditelné žádné hranice nebo pozadí.
Žádný prohlížeč nepracuje správně, takže řádek tabulky je stále viditelný, jak je znázorněno na následujícím obrázku.
Odkaz: Reference SitePoint CSS: Vlastnosti prázdných buněk
Ve Firefoxu 3.x je záporná hodnota na word-spacing
vlastnost bude považována za nulovou na sousedních inline prvcích. Záporná hodnota by měla způsobit vzájemné překrývání vložených prvků, jako by tomu bylo u textu, ale nestane se tak. Namísto toho jsou elementům přiděleny nulové rozdělení bílých prostor bez překrytí.
Obrázek níže zobrazuje správné i nesprávné implementace:
V příkladech uvedených výše jsou tři slova "ovoce", "zelenina" a "ostatní potraviny" jednotlivě zabalena do prvky, zatímco odstavec, který je obtéká, má své
word-spacing
vlastnost nastavená na zápornou hodnotu.
Druhý příklad (Firefox) se nepoužívá k oddálení negativních slov, s výjimkou posledních dvou slov, protože tato slova nejsou jednotlivě zabalena s rozpětím, ale jsou přirozenými textovými prvky.
Jako vedlejší bod se tato chyba vyskytuje podobně v IE8, ale ne v předchozích verzích IE.
Odkaz: SitePoint CSS Reference: Vlastnost mezery slov
Pokud má prvek nastavenou hodnotu dekorace textu, tato hodnota by neměla být dědictvím pohyblivých potomků. V prohlížeči Firefox 3.x mají plovoucí potomci stejnou hodnotu jako jejich rodiče, ačkoli tomu tak není.
Na výše uvedeném obrázku je první řádek snímek obrazovky z IE8 zobrazující a prvek vznášel uvnitř kotvy. Text uvnitř
nemá viditelnou textovou výzdobu, což je správný způsob zobrazení. Ve Firefoxu (zobrazeném ve druhém příkladu) je textová dekorace nesprávně aplikována na plovoucí
.
Možná jste si všimli této chyby ve Firefoxu, když se pokoušíte odstranit textovou výzdobu z plovoucích obrazů uvnitř kotvících prvků.
Odkaz: SitePoint CSS Reference: vlastnost dekorace textu
Za použití white-space
vlastnost v aplikaci Firefox 3.5 můžete určit, zda se má více místů zkopírovat do jednoho místa nebo ne. Ve výchozím nastavení dokumenty HTML sblíží více míst do jednoho místa. V některých případech můžete použít white-space: pre
aby se zabránilo sbalení bílého místa, což je podobné použití HTML tag. Následně můžete toto nastavení odstranit pomocí
white-space: pre-line
(aby se zbavil bílého místa).
Firefox 3.0 nepodporuje tuto hodnotu, takže bude zachován bílý prostor. Aplikace Firefox 3.5 správně zkolabuje. Obrázek níže ukazuje oba příklady:
Stejně tak, když je nastaven text odstavce white-space: pre-wrap
, mělo by to chránit bílé mezeru mezi slovy, ale samozřejmě by mělo zahrnovat přerušování řádků. Firefox 3.0 se nepodaří tuto funkci implementovat správně, zatímco pozdější verze (a všechny ostatní prohlížeče) obsahují přírodní linky. Oba příklady jsou uvedeny níže.
Mějte na paměti, že je uveden vnější prvek white-space: pre
zatímco vnitřní se snaží překonat nedostatek přerušení řádků pomocí
pre-wrap
. Samotný, pre-wrap
by neměl žádný účinek.
Firefox 3.x také zachází s některými white-space
hodnoty odlišně od jiných prohlížečů, když jsou tyto hodnoty aplikovány na živel. Například při použití
white-space: nowrap
by měl způsobit, že všechny napsané texty jsou v vytvořit jeden řádek, ale Firefox 3.x to neudělá.
Odkaz: Reference SitePoint CSS: Vlastnost white-space
CSS umožňuje vývojářům určit, kde by se měly nebo neměly objevit stránky pomocí tří vlastností page-break-before
, page-break-inside
, a page-break-after
. Opera je jediný prohlížeč, který tyto vlastnosti plně podporuje, zatímco jiné prohlížeče nabízejí částečnou podporu nebo žádnou podporu.
The page-break-inside
vlastnost určuje, zda může dojít k přerušení stránky uvnitř jednoho prvku na úrovni bloku. Firefox tuto službu nepodporuje. Použití syntaxe page-break-inside: avoid
, můžete zabránit rozdělení prvku během tisku. Níže uvedený obrázek z náhledu tisku v aplikaci Opera 10 ukazuje, jak může tato vlastnost zabránit rozdělení neřízeného seznamu na dvě stránky:
Naopak, podívejte se na obrázek níže, převzatý z volby Náhled náhledu v aplikaci Firefox 3.5:
Odkaz: SitePoint CSS Reference: Vlastnosti stránkovaného média
The orphans
a widows
Vlastnosti CSS jsou podporovány pouze aplikacemi Internet Explorer 8 a Opera od verze 9. Tato vlastnost slouží k zadání minimálního počtu řádků z jednoho odstavce, které se mohou vyskytnout na vytištěné stránce v dolní části (sirotky) nebo v horní části (vdovy ). V závislosti na zvoleném čísle budou čáry přesunuty z jedné stránky na další (nebo předchozí), aby se zabránilo tisku jednoho řádku v horní nebo dolní části stránky.
Dokonce i s orphans
vlastnost nastavená na hodnotu "3", jak je znázorněno na obrázku níže, Náhled tisku prohlížeče Firefox zobrazuje jeden řádek ve spodní části stránky, kterou lze tisknout:
Podobně jako page-break-inside
vlastnost Firefox také nepodporuje hodnoty avoid
, left
, a right
pro oba page-break-before
a page-break-after
vlastnosti.
Reference: Reference SitePoint CSS: vlastnictví sirotků | Reference SitePoint CSS: Vlastnosti vdov
The Aplikace Internet Explorer 8, Chrome a Safari implementují tuto funkci správně a brání tomu, aby hnízdění blokových prvků přerušilo styl, jak je znázorněno na následujícím obrázku: V předchozím odstavci je text uvnitř a Odkaz: SitePoint CSS Reference: první-line pseudo-element Firefox postupně přidal lepší podporu pro CSS3 od vydání verze 3.0. Níže je popis, jak Firefox zpracovává různé funkce CSS3. Některé z nich mohou být stále v pracovní návrh nebo kandidátské doporučení fáze, proto nemůžeme být dogmatickí o tom, co by mělo a mělo by být podporováno, dokud nedosáhnou doporučení etapa. Některé z významnějších chyb a neslučitelností byly diskutovány výše, ale je třeba si uvědomit několik dalších. Poté, co jste prošli tímto materiálem, můžete jasně vidět, že nedostatek podpory funkcí CSS ve Firefoxu je minimální a v mnoha případech zcela nerelevantní, protože mnohé z zde diskutovaných vlastností nejsou příliš často používány. Nicméně doufám, že to bude slušným odkazem na nejvýznamnější chyby a nejednotnosti ve Firefoxu. Pokud máte potíže s určitou funkcí CSS ve Firefoxu, která zde není uvedena, pravděpodobně děláte něco špatně nebo nemusí plně porozumět jistým koncepcím a zásadám CSS. Takže v tomto ohledu by tento odkaz měl fungovat dobře jako zpětný odkaz , protože ty, které zde nejsou uvedeny, mohou být důvěryhodné, aby fungovaly dobře, pokud jsou správně implementovány správnou syntaxí. Samozřejmě, pokud je něco, co mi chybělo, nebo nějaké chyby, prosím, vyjádřete svůj komentář a udělám vše pro to, abyste provedli potřebné opravy a doplňky. Tento příspěvek byl napsán výhradně pro Webdesigner Depot Louis Lazaris, nezávislý spisovatel a webový vývojář. Louis běží Působivé weby kde on posílá články a cvičení na web designu. Můžete sledovat Louis na Twitteru nebo se s ním spojte přes jeho webové stránky . :first-line
pseudo-element umožňuje, aby první řádek libovolného textového bloku měl odlišné formátování od zbytku textu. Například první řádek textu odstavce lze změnit na velká nebo na jinou barvu. Aby tento prvek CSS pracoval prakticky, měl by umožnit možnost vnořených prvků na úrovni bloku. Například a element by měl povolit
:first-line
pseudo-element pro změnu stylu prvního řádku textu uvnitř element, který se nachází uvnitř a
má
:first-line
pseudo-element nastaven na color: blue
, který v aplikaci Firefox selže kvůli vložení odstavce uvnitř Podpora CSS3 ve Firefoxu 3.x
text-shadow
vlastnictví box-shadow
vlastnictví, s výjimkou použití vlastního prefixu -moz-
box-sizing
vlastnictví, s výjimkou použití vlastního prefixu -moz-
-moz-
se používá border-image
vlastnost, ale 3.5 ji podporuje pomocí -moz-
vlastní prefix Jiné funkce CSS nejsou podporovány
run-in
pro display
vlastnictví ::selection
pseudo-element Závěr
Další odkazy