¿Por qué los navegadores crean prefijos de proveedor para las propiedades CSS?


Tal vez es una respuesta obvia, pero

¿Por qué en la tierra los navegadores decidirían crear sus propios prefijos de proveedor para border-radius y similares?

Quiero decir: ¿por Qué tengo que escribir:

-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;

Es porque cada plataforma pensó "Estamos bien, vamos a llegar a una mejor manera de hacer esquinas redondeadas?"Parece totalmente e inexplicablemente redundante escribir tres líneas para una.

Author: BoltClock, 2011-11-15

2 answers

Se debe a que las características fueron implementadas por los proveedores antes de que la especificación llegara a su etapa de lanzamiento final.

Los prefijos de proveedor aseguran que no haya conflictos con la funcionalidad cambiante, etc.

Originalmente, el punto de los prefijos de proveedor era permitir a los fabricantes de navegadores para empezar a soportar declaraciones CSS experimentales.

Digamos que un grupo de trabajo del W3C está discutiendo una declaración de grid (que, por cierto, no sería una mala idea). Vamos además decir que algunas personas crean un borrador de especificación, pero otros no están de acuerdo con algunos detalles. Como sabemos, este proceso puede llevar años.

Además, digamos que Microsoft como un experimento decide implementar la red propuesta. En este momento, Microsoft no puede asegúrese de que la especificación no cambie. Por lo tanto, en su lugar de agregar grid a su CSS, agrega-ms-grid.

El prefijo del proveedor dice "este es el Microsoft interpretación de una propuesta."Por lo tanto, si la definición final de la red es diferente, Microsoft puede agregar una nueva cuadrícula de propiedades CSS sin romper páginas que dependen de-ms-grid

Source .

 53
Author: alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-15 05:23:37

ACTUALIZACIÓN A PARTIR DEL AÑO 2016

Como este post antiguo, es importante mencionar que ahora la mayoría de los proveedores entienden que estos prefijos solo están creando código duplicado no necesario y la situación en la que necesita especificar 3 reglas CSS diferentes para obtener un efecto que funcione en todo el navegador es no deseado.

Como se menciona en este glosario sobre la visión de Mozilla en Vendor Prefix en May 3, 2016,

Los proveedores de navegadores ahora están tratando de deshacerse del proveedor prefijo para experimental función. Se dieron cuenta de que los desarrolladores web los estaban utilizando en sitios web de producción, contaminando el espacio global, y haciéndolo más es difícil para los desvalidos desempeñarse bien.

Por ejemplo, hace solo unos años, para poner una esquina redondeada en una caja tenías que escribir:

-moz-border-radius: 10px 5px;
-webkit-border-top-left-radius: 10px;
-webkit-border-top-right-radius: 5px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-bottom-left-radius: 5px;
border-radius: 10px 5px;

Pero ahora que los navegadores han llegado a soportar completamente esta característica, realmente solo necesita la versión estandarizada:

border-radius: 10px 5px;
 11
Author: Raman Sahasi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-11 07:22:46