Esiste un motivo valido per i browser che prefiggono nuove funzionalità CSS, invece di consentire ai webmaster di utilizzare la versione non prefissata?
Ad esempio, un codice di esempio per il gradiente di sfondo ha il seguente aspetto:
#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);
}
Che senso ha obbligare i webmaster a copiare e incollare lo stesso codice quattro volte per ottenere lo stesso risultato?
Nota: uno dei motivi spesso citati è che gli stili con prefisso devono essere temporanei, mentre il browser non implementa correttamente la specifica, oppure la specifica non è definitiva .
IMO, questo motivo non ha senso:
- Se il motore del browser non implementa correttamente la specifica, il browser non sarà conforme, non importa se non lo implementa in un modulo non prefissato o non lo implementa in un modulo con prefisso.
- Se la specifica non è definitiva, può essere importante quando esistevano precedenti implementazioni con lo stesso nome. Ad esempio se CSS2 avesse
linear-gradient
, ma CSS3 era inteso ad estenderelinear-gradient
con funzionalità aggiuntive, sarebbe intelligente per prefisso temporaneo la nuova bozza, implementazione da-css3-<style>
differenziazione tra quella funzionante CSS2 e la sperimentale CSS3 uno. In pratica, i CSS2 non hannolinear-gradient
o altre novità CSS3.
Capirei anche se diversi browser avessero formati di implementazione diversi : ad esempio diciamo che è richiesto Firefox, per ombreggiatura del testo, <weight-of-shadow distance-x distance-y color>
, mentre Chrome ha richiesto <distance-x distance-y weight-of-shadow color>
. Ma in realtà, questo non è il caso; almeno tutte le nuove funzionalità di CSS3 che ho usato finora avevano lo stesso formato.