¿Existe una razón válida para que los navegadores prefijan nuevas funciones CSS, en lugar de permitir que los webmasters utilicen la versión sin prefijo?
Por ejemplo, un código de muestra para el gradiente de fondo se ve así:
#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);
}
¿Cuál es el punto de obligar a los webmasters a copiar y pegar el mismo código cuatro veces para obtener el mismo resultado?
Nota: una de las razones a menudo citadas es que los estilos prefijados son temporales mientras que el navegador no implementa la especificación correctamente o la especificación no es definitiva .
OMI, esta razón es una tontería:
- Si el motor del navegador no implementa la especificación correctamente, el navegador no será compatible, sin importar si no lo implementa en una forma no prefijada o si no lo hace en una forma prefijada.
- Si la especificación no es definitiva, puede ser importante cuando hubo implementaciones anteriores con el mismo nombre. Por ejemplo, si CSS2 tenía
linear-gradient
, pero CSS3 tenía la intención de extenderselinear-gradient
con características adicionales, sería inteligente prefijar temporalmente la implementación nueva, borrador,-css3-<style>
diferenciando entre el CSS2 funcional y el CSS3 experimental. En la práctica, CSS2 no tienelinear-gradient
u otras novedades de CSS3.
También entendería si diferentes navegadores tuvieran diferentes formatos de implementación : por ejemplo, digamos que Firefox requiere, para sombra de texto <weight-of-shadow distance-x distance-y color>
, mientras que Chrome requiere <distance-x distance-y weight-of-shadow color>
. Pero en realidad, este no es el caso; al menos todas las nuevas características de CSS3 que he usado hasta ahora tenían el mismo formato.
If the browser engine does not implement the spec correctly, the browser will not be compliant
- Bienvenido al mundo real. ™