Não há muitos artigos cobrindo incompatibilidades ou diferenças de CSS apenas no Firefox - e por boas razões.
O Firefox sempre fez um excelente trabalho de suporte a CSS e JavaScript de maneira compatível com os padrões, sem muitos bugs inoportunos.
Existem, no entanto, algumas propriedades CSS e seletores que não são suportados por uma ou mais das versões lançadas desde a versão 3.0., Que abordarei aqui.
Este artigo abordará bugs, inconsistências e não-suporte . Então, se você está tendo problemas com uma propriedade CSS ou seletor no Firefox e não está listado aqui, então você provavelmente terá que repensar seu layout e reconsiderar qual pode ser o culpado.
Como o Firefox 2 é virtualmente inexistente , Não estarei considerando essa versão especificamente, mas essas informações geralmente se aplicam a essa versão por padrão.
E devo notar que o material para este post foi tirado principalmente do recém-atualizado SitePoint Referência CSS , que é de longe a melhor e mais abrangente referência CSS disponível em qualquer lugar.
No Firefox 3.x, quando um elemento ultrapassa a borda de um pai que possui o outline
conjunto de propriedades, o contorno se expandirá para se ajustar ao elemento de contenção, conforme mostrado na captura de tela abaixo:
A implementação correta é mostrada na próxima captura de tela obtida do Chrome:
Como mostrado acima, o contorno deve abranger o elemento que está sendo esboçado e não deve ser afetado por nenhum elemento transbordante. Para garantir que não haja confusão, observe que este é um bug na implementação do outline
propriedade, não o border
propriedade.
Referência: SitePoint CSS Reference: estrutura de tópicos
No Firefox, quando uma tabela tem seus limites definidos como collapse
usando o border-collapse
propriedade, as margens superior e esquerda da tabela em relação aos elementos próximos é de 1 pixel de diferença. Isso é mostrado em uma captura de tela ampliada na imagem abaixo, que exibe a borda inferior de um elemento de nível de bloco (vermelho) tocando a borda superior de uma tabela recolhida (azul):
Esta é a implementação correta desse par de propriedade / valor, conforme mostrado no Chrome:
Como mostrado acima, como as bordas são “recolhidas” e porque a tabela não é um elemento de bloco, deve haver um pequeno deslocamento na margem esquerda e a margem superior deve estar nivelada com a borda inferior do elemento acima dela.
Referência: Referência CSS do SitePoint: propriedade border-collapse
Este é um valor de propriedade que não é implementado corretamente por qualquer navegador, incluindo o Firefox. Quando uma linha da tabela não tem conteúdo visível e todas as suas células têm seus empty-cells
propriedade definida como hide
, a linha inteira deve se comportar como se estivesse definida como "display: none", sem bordas ou fundos visíveis.
Nenhum navegador lida com isso corretamente, então a linha da tabela ainda é visível, como mostra a imagem abaixo.
Referência: Referência CSS do SitePoint: Propriedade empty-cells
No Firefox 3.x, um valor negativo no word-spacing
propriedade será tratada como zero nos elementos inline adjacentes. O valor negativo deve fazer com que os elementos sequenciais se sobreponham uns aos outros, como seria o caso do texto, mas isso não acontece. Em vez disso, os elementos recebem apenas zero de separação de espaço em branco sem sobreposição.
A imagem abaixo exibe as implementações corretas e incorretas:
Nos exemplos mostrados acima, as três palavras “Frutas”, “Vegetais” e “Outros Alimentos” são embaladas individualmente elementos, enquanto o parágrafo que os envolve tem
word-spacing
propriedade definida como um valor negativo.
O segundo exemplo (Firefox) não aplica o espaçamento negativo entre palavras, exceto entre as duas últimas palavras, porque essas palavras não são encapsuladas individualmente por spans, mas são elementos de texto natural.
Como um ponto lateral, este bug ocorre de forma semelhante no IE8, mas não nas versões anteriores do IE.
Referência: Referência CSS do SitePoint: propriedade de espaçamento de palavras
Quando um elemento possui um conjunto de valores de decoração de texto, esse valor não deve ser herdado por descendentes flutuantes. No Firefox 3.x, os descendentes flutuantes recebem os mesmos valores de decoração de texto de seus pais, mesmo que isso não seja o caso.
Na imagem acima, a primeira linha é uma captura de tela do IE8, exibindo um elemento flutuava dentro de uma âncora. O texto dentro do
não tem uma decoração de texto visível, que é a maneira correta de exibi-lo. No Firefox (mostrado no segundo exemplo), a decoração de texto é aplicada incorretamente na
.
Você pode ter notado esse bug no Firefox ao tentar remover a decoração de texto de imagens flutuantes dentro de âncoras.
Referência: Referência CSS do SitePoint: text-decoration Property
Usando o white-space
No Firefox 3.5, você pode especificar se vários caracteres de espaço devem ser reduzidos a um único espaço ou não. Por padrão, os documentos HTML recolherão vários espaços até um único espaço. Em alguns casos, você pode aplicar white-space: pre
para evitar que o espaço em branco seja recolhido, o que é semelhante ao uso do Tag HTML. Posteriormente, você pode querer remover essa configuração usando
white-space: pre-line
(para recolher o espaço em branco).
O Firefox 3.0 não suporta esse valor, portanto, o espaço em branco será mantido. O Firefox 3.5 recolhe o espaço corretamente. A imagem abaixo mostra os dois exemplos:
Da mesma forma, quando um parágrafo de texto é definido como white-space: pre-wrap
, isso deve preservar espaços em branco entre palavras, mas deve naturalmente incluir quebras de linha. O Firefox 3.0 falha ao implementar isso corretamente, enquanto as versões posteriores (e todos os outros navegadores) incluem as quebras de linha naturais. Ambos os exemplos são mostrados abaixo.
Tenha em mente que o elemento externo é dado white-space: pre
enquanto um interior está tentando substituir a falta de quebras de linha usando
pre-wrap
. Sozinho, pre-wrap
não teria qualquer efeito.
Firefox 3.x também trata os alguns dos white-space
valores de forma diferente de outros navegadores quando esses valores são aplicados ao elemento. Por exemplo, aplicando
white-space: nowrap
deve causar todo o texto digitado em um para formar uma linha, mas o Firefox 3.x não faz isso.
Referência: Referência do SitePoint CSS: Propriedade white-space
O CSS permite que os desenvolvedores especifiquem onde as quebras de página devem ou não ocorrer usando as três propriedades page-break-before
, page-break-inside
e page-break-after
. O Opera é o único navegador que suporta totalmente essas propriedades, enquanto outros navegadores oferecem suporte parcial ou sem suporte.
o page-break-inside
property especifica se uma quebra de página pode ou não ocorrer dentro de um único elemento em nível de bloco. O Firefox não oferece suporte para essa propriedade. Usando a sintaxe page-break-inside: avoid
, você pode impedir que um elemento seja dividido durante a impressão. A imagem abaixo, de uma visualização de impressão no Opera 10, mostra como essa propriedade pode impedir que uma lista não ordenada seja dividida em duas páginas:
Por outro lado, veja a imagem abaixo, tirada da opção de visualização de impressão no Firefox 3.5:
Referência: Referência de SitePoint CSS: propriedades de mídia paginadas
o orphans
e widows
As propriedades CSS são suportadas apenas pelo Internet Explorer 8 e pelo Opera desde a versão 9. Essa propriedade é usada para especificar o número mínimo de linhas de um único parágrafo que pode ocorrer em uma página impressa, na parte inferior (órfãos) ou superior (viúvas). ). Dependendo do número escolhido, as linhas serão movidas de uma página para a próxima (ou anterior) para evitar que uma única linha seja impressa na parte superior ou inferior de uma página.
Mesmo com o orphans
Propriedade definida para um valor de "3", como mostrado na imagem abaixo, a pré-visualização do Firefox mostra uma única linha na parte inferior de uma das páginas imprimíveis:
Semelhante ao page-break-inside
propriedade, o Firefox também não suporta os valores avoid
, left
e right
tanto para o page-break-before
e page-break-after
propriedades.
Referências: Referência CSS do SitePoint: Propriedade orphans | Referência CSS do SitePoint: Propriedade widows
o O Internet Explorer 8, o Chrome e o Safari implementam esse recurso corretamente, evitando que o aninhamento de elementos de bloco interrompa o estilo, conforme mostrado na imagem abaixo: No parágrafo acima, o texto está dentro de um Referência: Referência do SitePoint CSS: Pseudo-Elemento de primeira linha O Firefox gradualmente adicionou melhor suporte para o CSS3 desde o lançamento da versão 3.0. Abaixo está uma descrição de como o Firefox lida com diferentes recursos do CSS3. Alguns destes podem ainda estar no rascunho de trabalho ou recomendação de candidato fase, portanto, não podemos ser dogmáticos sobre o que deve e não deve ser apoiado até que eles tenham atingido o recomendação etapa. Alguns dos bugs e incompatibilidades mais significativos foram discutidos acima, mas há alguns outros dignos de nota. Depois de passar por este material, você pode ver claramente que a falta de suporte dos recursos CSS no Firefox é mínima e, em muitos casos, bastante irrelevante, pois muitas das propriedades discutidas aqui não são muito usadas. No entanto, espero que isso forneça uma referência decente para os bugs e inconsistências mais significativos no Firefox. Se você está tendo problemas com um recurso específico do CSS no Firefox que não está listado aqui, provavelmente você está fazendo algo errado ou pode não entender completamente certos conceitos e princípios do CSS. Portanto, a esse respeito, essa referência deve funcionar bem como uma referência reversa , já que as que não estão listadas aqui podem ser confiáveis para funcionar bem se forem implementadas corretamente com a sintaxe adequada. É claro que, se houver algo que eu tenha perdido, ou algum erro, por favor, comente e farei o possível para fazer as correções e acréscimos necessários. Imagem do Firefox fornecida por Rakaz Este post foi escrito exclusivamente para Webdesigner Depot por Louis Lazaris, um escritor freelance e desenvolvedor web. Louis corre Webs impressionantes onde ele publica artigos e tutoriais sobre web design. Você pode seguir Louis no Twitter ou entre em contato com ele através de seu site . :first-line
O pseudoelemento permite que a primeira linha de qualquer bloco de texto tenha formatação diferente do resto do texto. Por exemplo, a primeira linha de um parágrafo do texto pode ser alterada para maiúscula ou para uma cor diferente. Para que esse elemento CSS funcione de maneira prática, ele deve permitir a possibilidade de elementos em nível de bloco aninhados. Por exemplo, um elemento deve permitir que o
:first-line
pseudo-elemento para alterar o estilo da primeira linha de texto dentro do elemento, que reside dentro de um
tem o
:first-line
pseudo-elemento definido como color: blue
, que falha no Firefox por causa do aninhamento do parágrafo dentro do Suporte a CSS3 no Firefox 3.x
text-shadow
propriedade box-shadow
propriedade, exceto ao usar o prefixo proprietário -moz-
box-sizing
propriedade, exceto ao usar o prefixo proprietário -moz-
-moz-
é usado border-image
propriedade, mas 3.5 suporta usando o -moz-
prefixo proprietário Outros recursos CSS não suportados
run-in
para o display
propriedade ::selection
pseudo-elemento Conclusão
Referências adicionais