Y a-t-il une raison valable pour que les navigateurs préfixent 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 dégradé d'arrière-plan 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-coller le même code quatre fois pour 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 alors que le navigateur n'implémente pas correctement la spécification ou que la spécification n'est pas définitive .
OMI, cette raison est un non-sens:
- Si le moteur de navigateur n'implémente pas la spécification correctement, le navigateur ne sera pas conforme, qu'il ne l'implémente pas sous une forme non préfixée ou qu'il ne l'implémente pas sous une forme préfixée.
- Si la spécification n'est pas définitive, il peut être important qu'il y ait eu des implémentations précédentes portant le même nom. Par exemple, si CSS2 l'avait fait
linear-gradient
, mais que CSS3 était destiné à s'étendrelinear-gradient
avec des fonctionnalités supplémentaires, il serait intelligent de préfixer temporairement le nouveau, brouillon, implémentation en-css3-<style>
différenciant le CSS2 fonctionnel et le CSS3 expérimental. En pratique, CSS2 n'a paslinear-gradient
ou d'autres nouveautés CSS3.
Je comprendrais également si différents navigateurs avaient des formats d'implémentation différents : par exemple, disons Firefox requis, pour l'ombre du texte <weight-of-shadow distance-x distance-y color>
, tandis que Chrome est requis <distance-x distance-y weight-of-shadow color>
. Mais en réalité, 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.
If the browser engine does not implement the spec correctly, the browser will not be compliant
- Bienvenue dans le monde réel. ™