Maison > interface Web > js tutoriel > La catastrophe préfixe du fournisseur CSS imminent

La catastrophe préfixe du fournisseur CSS imminent

Christopher Nolan
Libérer: 2025-03-01 00:21:09
original
880 Les gens l'ont consulté

The Impending CSS Vendor Prefix Catastrophe

Points clés

    La surutilisation des préfixes de fournisseurs
  • CSS (en particulier les préfixes -webkit) présente des problèmes potentiels avec les normes Web et la compatibilité des navigateurs. Les développeurs utilisent souvent ces préfixes pour accéder à de nouvelles fonctionnalités, mais cela peut conduire à un code non standardisé et spécifique au navigateur.
  • World Wide Web Alliance (W3C) envisage de prendre en charge le préfixe -webkit dans les navigateurs non Webkit. Cependant, cela peut conduire à une incompatibilité dans la mise en œuvre du même attribut et encourager davantage les développeurs à utiliser des attributs spécifiques à WebKit, ce qui peut en faire la norme de facto.
  • La responsabilité de ce problème incombe aux développeurs et aux fournisseurs de navigateurs. Les développeurs doivent éviter d'écrire du code spécifique au navigateur et tester leurs sites Web dans plusieurs navigateurs. Dans le même temps, les fournisseurs de navigateurs devraient fournir plus d'informations sur l'état standardisé des propriétés du préfixe et mettre en évidence lorsqu'ils sont obsolètes.

La relation entre le développeur et le préfixe du vendeur CSS est liée à l'amour et à la haine. Ils nous permettent d'utiliser une technologie de pointe, mais au prix d'une longue déclaration:

background-image: -webkit-linear-gradient(#fff, #000);
background-image: -moz-linear-gradient(#fff, #000);
background-image: -ms-linear-gradient(#fff, #000);
background-image: -o-linear-gradient(#fff, #000);
background-image: linear-gradient(#fff, #000);
Copier après la connexion
Copier après la connexion

Théoriquement fonctionne bien, mais considérons la situation réelle: 1. Les propriétés expérimentales sont généralement implémentées en premier dans le moteur Webkit, et rien ne garantit qu'ils seront copiés dans d'autres navigateurs. 2. Il est difficile de déterminer si l'attribut de préfixe du fournisseur fait partie de la spécification CSS. Certains fournisseurs ne soumettent pas d'attributs pour la normalisation. 3. Les versions préfixes de fournisseurs incorrectes continuent d'être prises en charge même si les propriétés standard changent. L'ancien code fonctionne toujours;

Vous constatez souvent que les sites Web utilisent uniquement le préfixe -webkit - même si d'autres navigateurs prennent en charge la propriété ou ont une large disponibilité sans le préfixe (par exemple border-radius). Par conséquent, Chrome et Safari sont plus beaux que les navigateurs concurrents - Les autres fabricants n'en sont pas satisfaits. Cette question a été soulevée et discutée lors de la réunion du W3C le 7 février 2012: & GT; Les défenseurs des normes Web enseignent aux gens à utiliser le webkit. Vous verrez des présentations de tous les défenseurs des normes Web qui préconisent les gens pour utiliser les préfixes WebKit. Notre travail consiste à résoudre des problèmes d'interopérabilité. Actuellement, nous essayons de déterminer lesquelles et combien de propriétés de préfixe Webkit sont réellement prises en charge à Mozilla. Si nous ne prenons pas en charge le préfixe WebKit, nous serons exclus d'une partie du Web mobile.

Réfléchissons avec soin. Les navigateurs non Webkit prendront en charge le préfixe -webkit. Il s'agit de la solution que W3C considère. Cette idée est probablement une défaite écrasante. Deux implémentations ou plus de la même propriété WebKit seront incompatibles, donc les développeurs ne pourront pas l'utiliser nulle part. Personne ne gagnera - y compris Apple et Google. Mais je suis plus inquiet des dommages irréparables que cela causera si la solution réussit. Une fois que les développeurs constatent que le préfixe WebKit est valable dans Firefox, IE et Opera, ils s'attendent à ce qu'ils travaillent sur tous les attributs. L'adoption WebKit uniquement se développera de façon exponentielle et les fournisseurs seront obligés de mettre en œuvre ces préfixes tout au long du processus. À ce moment-là, quelle que soit la spécification W3C, les attributs WebKit deviendront la norme de facto. Fin du jeu: le Web ouvert est fermé. Son impact va également au-delà de CSS: de nombreuses nouvelles API JavaScript ont des préfixes de fournisseurs.

Qui devrait être responsable?

Nous pouvons blâmer l'échec sur:

    W3C Group de travail
  • Les normes Web mettent trop de temps à mûrir. Cela peut être inévitable, mais les fabricants de navigateurs contournent le processus.
  • Fabricants de navigateurs
  • Ils sont impatients d'introduire de nouvelles technologies, il est facile d'ajouter des préfixes et de l'oublier. Les développeurs Web ont besoin de plus d'informations: W3C envisage-t-il cette propriété et quand la réfixe-t-elle? Idéalement, une fois que le navigateur a mis en œuvre les propriétés standard, le préfixe expérimental disparaît. Les fournisseurs ne le feront pas car il brisera le site Web, mais ils peuvent faire plus pour mettre en évidence le problème, comme la fourniture d'outils de détection ou les messages d'erreur de la console du développeur.
  • électrique et google
  • Les deux sont coupables de promouvoir le préfixe Webkit en tant que partie standard du développement Web HTML5 quotidien. Apple est accusé de s'opposer activement au W3C.
  • Mozilla, Microsoft et Opera
  • D'autres fournisseurs sont généralement à la traîne des navigateurs WebKit pendant des mois, voire des années. L'ajout d'un préfixe WebKit est une solution ridicule: il est temps d'améliorer leur niveau.
  • Sites Web techniques et prédicateurs
  • Nous aimons tous les démos cool, mais les prédicateurs ignorent souvent la mention que les attributs sont expérimentaux et peuvent ne jamais obtenir un support complet du navigateur ( Oui, cela inclut le site de site ). Idéalement, le code doit fonctionner dans au moins deux navigateurs;
  • Développeur Web
  • Nous sommes trop paresseux. Nous écrivons du code spécifique au navigateur, et bien que nous ayons l'intention de le corriger plus tard, nous le faisons rarement. Vous souvenez-vous de la dernière fois que le développeur a ciblé un navigateur spécifique? C'est IE6. Dix ans plus tard, nous sommes toujours sous l'influence de cette décision. Voulez-vous vraiment que l'histoire se répète?
Il est temps d'agir

Je m'oppose aux navigateurs non Webkit pour prendre en charge les préfixes WebKit. Au mieux, cela rend le préfixe inutilisable. Au pire, il perturbe l'ensemble du processus de normalisation. Vous pouvez être d'accord ou en désaccord, mais veuillez exprimer votre opinion aux collègues, aux blogs et aux réseaux sociaux. Les fabricants de W3C et de navigateur écouteront vos commentaires; vous n'avez qu'à fournir des commentaires. Ensuite, testez votre site Web dans plusieurs navigateurs. Un peu de dégradation élégante est OK, mais ignorer un ou plusieurs navigateurs modernes avec un support égal n'est pas OK. Correction du code ou votre site Web exacerbe le problème.

FAQ (FAQ) sur les préfixes CSS et WebKit

Quel est le but des préfixes

CSS (tels que -moz-, -o-, -ms- et -webkit-)?

Le préfixe CSS, également connu sous le nom de préfixes de fournisseurs, est un moyen pour les fabricants de navigateurs de les ajouter avant que les nouvelles fonctionnalités CSS ne deviennent la norme W3C (World Wide Web Alliance). Ces préfixes garantissent que la nouvelle fonctionnalité n'est valable que dans son navigateur. Par exemple, -moz- est pour Mozilla Firefox, -o- est pour Opera, -ms- est pour Microsoft Internet Explorer et Edge, -webkit- est destiné aux navigateurs utilisant le moteur Webkit, tels que Safari et des versions plus anciennes de Chrome.

Qu'est-ce qu'une crise de préfixe WebKit?

La crise du préfixe WebKit fait référence à une situation où les navigateurs non Webkit commencent à prendre en charge le préfixe -webkit- pour assurer la compatibilité avec les sites qui utilisent uniquement ces préfixes. Cela conduit à la fragmentation des normes Web et rend plus difficile pour les nouveaux navigateurs d'entrer sur le marché.

Comment utiliser le préfixe CSS dans mon code?

Pour utiliser les préfixes CSS, ajoutez-les simplement avant les propriétés CSS dans la feuille de style. Par exemple, pour utiliser l'attribut border-radius avec un préfixe de fournisseur, vous pouvez écrire:

background-image: -webkit-linear-gradient(#fff, #000);
background-image: -moz-linear-gradient(#fff, #000);
background-image: -ms-linear-gradient(#fff, #000);
background-image: -o-linear-gradient(#fff, #000);
background-image: linear-gradient(#fff, #000);
Copier après la connexion
Copier après la connexion

(Les réponses aux questions suivantes sont similaires et ont été omises pour maintenir la structure globale de l'article et l'intégrité de l'information)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal