Il n'y a pas beaucoup d'articles couvrant les incompatibilités, ou les différences CSS dans Firefox seul - et pour une bonne raison.
Firefox a toujours fait un excellent travail en supportant à la fois CSS et JavaScript de manière conforme aux normes sans trop de bugs complexes.
Il existe toutefois quelques propriétés et sélecteurs CSS qui ne sont pas pris en charge par une ou plusieurs des versions publiées depuis la version 3.0.
Cet article traitera des bogues, des incohérences et de l'absence de support . Donc, si vous rencontrez des problèmes avec une propriété CSS ou un sélecteur dans Firefox et que celui-ci ne figure pas dans la liste, vous devrez probablement repenser votre mise en page et reconsidérer la nature du problème.
Depuis que Firefox 2 est virtuellement inexistant , Je ne considérerai pas cette version spécifiquement, mais cette information s'appliquera généralement à cette version par défaut.
Et je dois noter que le matériel pour ce poste a été pris principalement de la nouvellement mis à jour SitePoint Référence CSS , la référence CSS la plus complète et la plus complète disponible partout.
Dans Firefox 3.x, lorsqu'un élément déborde de la bordure d'un parent outline
ensemble de propriétés, le contour s’étend pour s’adapter à l’élément contenant, comme indiqué dans la capture d’écran ci-dessous:
L'implémentation correcte est affichée dans la capture d'écran suivante de Chrome:
Comme indiqué ci-dessus, le contour doit englober l’élément qui est décrit et ne doit pas être affecté par des éléments débordants. Pour vous assurer qu'il n'y a pas de confusion, notez qu'il s'agit d'un bogue dans l'implémentation du outline
propriété, pas le border
propriété.
Référence: Référence CSS SitePoint: Propriété outline
Dans Firefox, lorsqu'une table a ses frontières définies sur collapse
en utilisant le border-collapse
property, les marges supérieure et gauche de la table par rapport aux éléments proches sont à 1 pixel. Ceci est montré dans une capture d'écran zoomée dans l'image ci-dessous, qui affiche la bordure inférieure d'un élément de niveau bloc (rouge) touchant la bordure supérieure d'une table réduite (bleu):
Voici l'implémentation correcte de cette paire propriété / valeur, comme indiqué dans Chrome:
Comme indiqué ci-dessus, les bordures étant «réduites» et la table n'étant pas un élément de bloc, il doit y avoir un léger décalage dans la marge gauche et la marge supérieure doit être égale à la bordure inférieure de l'élément au-dessus.
Référence: Référence CSS SitePoint: propriété border-collapse
C'est une valeur de propriété qui n'est pas implémentée correctement par n'importe quel navigateur, y compris Firefox. Lorsqu'une ligne de table n'a pas de contenu visible et que toutes ses cellules ont leur empty-cells
propriété définie sur hide
, la ligne entière doit se comporter comme si elle était définie sur "display: none", sans bordure ni arrière-plan visible.
Aucun navigateur ne gère cela correctement, de sorte que la ligne du tableau est toujours visible, comme indiqué dans l'image ci-dessous.
Référence: Référence CSS SitePoint: Propriété empty-cells
Dans Firefox 3.x, une valeur négative sur le word-spacing
propriété sera traitée comme zéro sur les éléments en ligne adjacents. La valeur négative doit entraîner le chevauchement des éléments en ligne, comme ce serait le cas avec le texte, mais cela ne se produit pas. Au lieu de cela, les éléments ne reçoivent qu'une séparation des espaces blancs sans chevauchement.
L'image ci-dessous affiche les implémentations correctes et incorrectes:
Dans les exemples ci-dessus, les trois mots "Fruits", "Vegetables" et "Other Foods" sont emballés individuellement éléments, tandis que le paragraphe qui les enveloppe a sa
word-spacing
propriété définie sur une valeur négative.
Le deuxième exemple (Firefox) ne parvient pas à appliquer l’espacement des mots négatifs, sauf entre les deux derniers mots, car ces mots ne sont pas séparés par des segments mais sont des éléments de texte naturels.
Comme point secondaire, ce bogue se produit de la même manière dans IE8, mais pas dans les versions précédentes d'IE.
Référence: Référence CSS SitePoint: espacement des mots
Lorsqu'un élément possède un ensemble de valeurs de décoration de texte, cette valeur ne doit pas être héritée par les descendants flottants. Dans Firefox 3.x, les descendants flottants reçoivent les mêmes valeurs de décoration de texte que leur parent, même si cela ne devrait pas être le cas.
Dans l'image ci-dessus, la première ligne est une capture d'écran de IE8, affichant un élément a flotté à l'intérieur d'une ancre. Le texte à l'intérieur du
n'a pas de décoration de texte visible, ce qui est la bonne façon de l'afficher. Dans Firefox (montré dans le deuxième exemple), le texte-décoration est incorrectement appliqué à la flottant
.
Vous avez peut-être remarqué ce bogue dans Firefox lorsque vous tentez de supprimer la décoration de texte des images flottantes à l'intérieur des ancres.
Référence: Référence CSS SitePoint: propriété text-decoration
En utilisant le white-space
propriété dans Firefox 3.5, vous pouvez spécifier si plusieurs caractères spatiaux doivent être réduits à un seul espace ou non. Par défaut, les documents HTML réduiront plusieurs espaces en un seul espace. Dans certains cas, vous pouvez appliquer white-space: pre
pour éviter que l’espace blanc ne soit réduit, ce qui est similaire à l’utilisation du Balise HTML Par la suite, vous souhaiterez peut-être supprimer ce paramètre en utilisant
white-space: pre-line
(pour réduire l'espace blanc).
Firefox 3.0 ne prend pas en charge cette valeur, l'espace blanc sera donc conservé. Firefox 3.5 réduit correctement l'espace. L'image ci-dessous montre les deux exemples:
De même, lorsqu'un paragraphe de texte est défini sur white-space: pre-wrap
, cela devrait préserver les espaces blancs entre les mots, mais devrait naturellement inclure des sauts de ligne. Firefox 3.0 ne parvient pas à implémenter cela correctement, tandis que les versions ultérieures (et tous les autres navigateurs) incluent les sauts de ligne naturels. Les deux exemples sont présentés ci-dessous.
Gardez à l'esprit que l'élément externe est donné white-space: pre
tandis qu'un intérieur tente de remplacer le manque de sauts de ligne en utilisant
pre-wrap
. Seul, pre-wrap
n'aurait aucun effet.
Firefox 3.x traite également certains des white-space
valeurs différemment des autres navigateurs lorsque ces valeurs sont appliquées à la élément. Par exemple, appliquer
white-space: nowrap
devrait provoquer tout le texte tapé dans un pour former une seule ligne, mais Firefox 3.x ne le fait pas.
Référence: Référence CSS SitePoint: propriété blanc
CSS permet aux développeurs de spécifier où les sauts de page doivent ou ne doivent pas se produire en utilisant les trois propriétés page-break-before
, page-break-inside
, et page-break-after
. Opera est le seul navigateur qui supporte entièrement ces propriétés, tandis que les autres navigateurs offrent un support partiel ou aucun support.
le page-break-inside
property spécifie si un saut de page peut ou non se produire dans un seul élément de niveau bloc. Firefox ne fournit pas de support pour cette propriété. Utiliser la syntaxe page-break-inside: avoid
, vous pouvez empêcher un élément d'être divisé pendant l'impression. L'image ci-dessous, tirée d'un aperçu avant impression d'Opera 10, montre comment cette propriété peut empêcher la division d'une liste non ordonnée sur deux pages:
En revanche, regardez l'image ci-dessous, extraite de l'option d'aperçu avant impression de Firefox 3.5:
Référence: Référence CSS SitePoint: Propriétés du média paginé
le orphans
et widows
Les propriétés CSS sont uniquement prises en charge par Internet Explorer 8 et Opera depuis la version 9. Cette propriété permet de spécifier le nombre minimum de lignes d'un paragraphe pouvant apparaître sur une page imprimée, en bas (orphelins) ou en haut (veuves). ). Selon le nombre choisi, les lignes seront déplacées d'une page à la suivante (ou précédente) afin d'éviter qu'une seule ligne ne soit imprimée en haut ou en bas d'une page.
Même avec le orphans
propriété définie à une valeur de "3", comme indiqué dans l'image ci-dessous, l'aperçu avant impression de Firefox affiche une seule ligne au bas de l'une des pages imprimables:
Semblable à la page-break-inside
propriété, Firefox ne supporte pas non plus les valeurs avoid
, left
, et right
pour les deux page-break-before
et page-break-after
Propriétés.
Les références: Référence CSS SitePoint: propriété orphans | Référence CSS SitePoint: widows
le Internet Explorer 8, Chrome et Safari implémentent cette fonctionnalité correctement, empêchant l’imbrication des éléments de bloc de rompre le style, comme illustré ci-dessous: Dans le paragraphe ci-dessus, le texte est à l'intérieur d'un Référence: Référence CSS SitePoint: Pseudo-élément de première ligne Firefox a progressivement ajouté un meilleur support pour CSS3 depuis la sortie de la version 3.0. Vous trouverez ci-dessous une description de la manière dont Firefox gère les différentes fonctionnalités de CSS3. Certains d'entre eux peuvent encore être dans le document de travail ou recommandation du candidat stade, nous ne pouvons donc pas être dogmatiques sur ce qui devrait et ne devrait pas être soutenu jusqu'à ce qu'ils aient atteint le recommandation étape. Certains des bogues et des incompatibilités les plus significatifs ont été discutés ci-dessus, mais il y a quelques autres points à noter. Après avoir parcouru ce matériel, vous pouvez clairement voir que le manque de prise en charge des fonctionnalités CSS dans Firefox est minime et, dans de nombreux cas, peu pertinent car de nombreuses propriétés discutées ici ne sont pas très utilisées. Néanmoins, j'espère que cela fournira une référence décente pour les bogues et les incohérences les plus importants dans Firefox. Si vous rencontrez des problèmes avec une fonctionnalité particulière de CSS dans Firefox qui ne figure pas dans la liste, il y a des chances que vous fassiez quelque chose de mal ou que vous ne compreniez pas complètement certains concepts et principes CSS. Donc, à cet égard, cette référence devrait fonctionner en tant que référence inverse , car ceux qui ne figurent pas dans cette liste peuvent fonctionner correctement s'ils sont correctement implémentés avec une syntaxe correcte. Bien sûr, s'il y a quelque chose que j'ai manqué ou des erreurs, merci de commenter et je ferai de mon mieux pour apporter les corrections et ajouts nécessaires. Image Firefox fournie par Rakaz Cet article a été écrit exclusivement pour Webdesigner Depot par Louis Lazaris, rédacteur indépendant et développeur web. Louis court Web impressionnant où il publie des articles et des tutoriels sur la conception de sites Web. Vous pouvez suivre Louis sur Twitter ou entrer en contact avec lui à travers son site web . :first-line
pseudo-element permet à la première ligne d'un bloc de texte donné d'avoir une mise en forme différente de celle du reste du texte. Par exemple, la première ligne d'un paragraphe de texte peut être modifiée en majuscule ou en une couleur différente. Pour que cet élément CSS fonctionne de manière pratique, il devrait permettre la possibilité d'éléments imbriqués au niveau du bloc. Par exemple, un élément devrait permettre à la
:first-line
pseudo-élément pour changer le style de la première ligne de texte à l'intérieur du élément, qui réside à l'intérieur d'un
a la
:first-line
pseudo-élément défini sur color: blue
, qui échoue dans Firefox en raison de l'imbrication du paragraphe à l'intérieur du Prise en charge de CSS3 dans Firefox 3.x
text-shadow
propriété box-shadow
propriété, sauf en utilisant le préfixe propriétaire -moz-
box-sizing
propriété, sauf en utilisant le préfixe propriétaire -moz-
-moz-
est utilisé border-image
propriété, mais 3.5 prend en charge en utilisant le -moz-
préfixe propriétaire Autres fonctionnalités CSS non prises en charge
run-in
pour le display
propriété ::selection
pseudo-élément Conclusion
Références supplémentaires