Esiste un motivo valido per i browser di aggiungere il prefisso alle nuove funzionalità CSS, invece di consentire ai webmaster di utilizzare la versione senza prefisso?
Ad esempio, un codice di esempio per il gradiente di sfondo è simile a:
#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);
}
A che serve forzare 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 sono destinati ad essere temporanei mentre il browser non implementa correttamente le specifiche o le specifiche non sono definitive .
IMO, questa ragione è un'assurdità:
- Se il motore del browser non implementa correttamente le specifiche, il browser non sarà conforme, non importa se non lo implementa in una forma non prefissata o non le implementa in una forma prefissata.
- Se la specifica non è definitiva, può importare quando c'erano implementazioni precedenti con lo stesso nome. Ad esempio, se CSS2 avesse avuto
linear-gradient
, ma CSS3 fosse destinato a estendersilinear-gradient
con funzionalità aggiuntive, sarebbe stato opportuno prefissare temporaneamente la nuova bozza, l'implementazione-css3-<style>
differenziando tra quella CSS2 funzionante e quella CSS3 sperimentale. In pratica, CSS2 non halinear-gradient
o altre novità CSS3.
Vorrei anche capire se browser diversi avevano formati di implementazione diversi : ad esempio diciamo che Firefox è richiesto, per l'ombra del testo <weight-of-shadow distance-x distance-y color>
, mentre Chrome richiede <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.
If the browser engine does not implement the spec correctly, the browser will not be compliant
- Benvenuto nel mondo reale. ™