Qual è il motivo per mettere i prefissi nelle nuove funzionalità CSS?
https://softwareengineering.stackexchange.com/questions/105294
-
02-11-2019 - |
Domanda
Esiste un motivo valido per cui i browser prefissi nuove funzionalità CSS, invece di consentire ai webmaster di utilizzare la versione non prefissata?
Ad esempio, a codice di esempio Per il gradiente di sfondo sembra:
#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);
}
Qual è il punto di costringere i webmaster a copiare incollare lo stesso codice quattro volte per avere lo stesso risultato?
Nota: uno dei motivi spesso citati è quello Gli stili prefissi sono destinati a essere temporanei mentre il browser non implementa correttamente le specifiche o la specifica non è definitiva.
IMO, questo motivo è una sciocchezza:
- Se il motore del browser non implementa correttamente le specifiche, il browser non sarà conforme, indipendentemente dal fatto che non lo implementa in forma non prefissata o non lo implementa in forma prefissata.
- Se la specifica non è definitiva, potrebbe importare quando ci sono state implementazioni precedenti con lo stesso nome. Ad esempio se CSS2 avesse avuto
linear-gradient
, ma CSS3 aveva lo scopo di estenderelinear-gradient
Con ulteriori funzionalità, sarebbe intelligente prefisso temporaneo il nuovo, bozza, implementazione di-css3-<style>
Differenziare tra quello funzionante CSS2 e quello sperimentale CSS3. In pratica, CSS2 non halinear-gradient
o altre novità CSS3.
Capirei anche se browser diversi avevano diversi formati di implementazione: Ad esempio, diciamo che Firefox richiesto, per l'ombra di testo, <weight-of-shadow distance-x distance-y color>
, mentre Chrome richiesto <distance-x distance-y weight-of-shadow color>
. Ma in realtà, questo non è così; Almeno tutte le nuove funzionalità di CSS3 che ho usato finora avevano lo stesso formato.
Nessuna soluzione corretta