Question

Existe-t-il une raison valable pour les navigateurs de préfixer les nouvelles fonctionnalités CSS, au lieu de laisser les webmasters utiliser la version non préfixée?

Par exemple, un exemple de code Pour le gradient de fond, ressemble à:

#arbitrary-stops {
  /* fallback DIY*/

  /* Safari 4-5, Chrome 1-9 */
  background: -webkit-gradient(linear, left top, right top, from(#2F2727), color-stop(0.05, #1a82f7), color-stop(0.5, #2F2727), color-stop(0.95, #1a82f7), to(#2F2727));

  /* Safari 5.1+, Chrome 10+ */
  background: -webkit-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);

  /* Firefox 3.6+ */
  background: -moz-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);

  /* IE 10 */
  background: -ms-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);

  /* Opera 11.10+ */
  background: -o-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
}

Quel est l'intérêt de forcer les webmasters à copier le même code quatre fois à avoir le même résultat?


Remarque: L'une des raisons souvent citées est que Les styles préfixés sont destinés à être temporaires tandis que le navigateur n'implémente pas correctement la spécification, soit la spécification n'est pas définitive.

OMI, cette raison est un non-sens:

  • Si le moteur du navigateur n'implémente pas correctement la spécification, le navigateur ne sera pas conforme, qu'il ne soit pas l'implémente sous une forme non préfixée ou qu'il ne l'implémente pas sous une forme préfixe.
  • Si la spécification n'est pas définitive, elle peut être importante lorsqu'il y a eu des implémentations précédentes avec le même nom. Par exemple si CSS2 avait linear-gradient, mais CSS3 était destiné à étendre linear-gradient Avec des fonctionnalités supplémentaires, il serait intelligent de préfixer temporaire le nouveau projet, la mise en œuvre par -css3-<style> Différencier entre le CSS2 fonctionnel et le CSS3 expérimental. En pratique, CSS2 n'a pas linear-gradient ou d'autres nouveautés CSS3.

Je comprendrais aussi si Différents navigateurs avaient des formats de mise en œuvre différents: Par exemple, disons Firefox requis, pour l'ombre de texte, <weight-of-shadow distance-x distance-y color>, tandis que Chrome a besoin <distance-x distance-y weight-of-shadow color>. Mais en fait, ce n'est pas le cas; Au moins toutes les nouvelles fonctionnalités de CSS3 que j'ai utilisées jusqu'à présent avaient le même format.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top