Las reglas de CSS3 traen muchas características interesantes.¿Por qué mozilla y webkit preponen -moz- y -webkit- a las reglas de CSS3?
Tome border-radius, por ejemplo. El estándar dice que si escribe esta regla:
div.rounded-corners {
border-radius: 5px;
}
Debo obtener un radio de borde de 5px.
Pero ni mozilla ni webkit implementan esto. Sin embargo, implementan lo mismo, con los mismos parámetros, con un nombre diferente (-moz-border-radius
y -webkit-border-radius
, respectivamente).
Con el fin de satisfacer el mayor número de navegadores posible, se termina con esto:
div.rounded-corners {
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
puedo ver dos desventajas obvias:
- código Copiar y pegar. Esto tiene riesgos obvios que no discutiré aquí.
- El W3C CSS validator no validará estas reglas.
Al mismo tiempo, no veo ninguna ventaja obvia.
Creo que las personas que están detrás de mozilla y webkit son más inteligentes que yo. Debe haber algunas buenas razones para tener las cosas estructuradas de esta manera. Es solo que no puedo verlos.
Por lo tanto, debo preguntarle a la gente: ¿por qué es esto?
hmm. No estoy seguro de seguir el razonamiento aquí. Supongamos que el estándar de radio de borde cambia. Y firefox lo crea con la extensión. ¿No rompería eso los sitios que tienen tanto el radio del borde como el radio del límite del borde? ¿O harán que el -moz-border-radius con la implementación anterior "anule" el estándar? – kikito
Normalmente, la versión con prefijo anterior se mantiene como un alias por un tiempo. p.ej. si configura '-moz-opacity' establecerá el estilo' opacity', y viceversa. Donde hay diferencias de sintaxis, convertirá entre los formatos. La sintaxis de '-moz-border-radius' es actualmente bastante diferente de la sintaxis de' -webkit-border-radius' ya que ambos implementaron la característica por separado; solo el caso simple es el mismo en ambos. Esto habría causado problemas de incompatibilidad si no hubieran usado nombres de propiedades prefijadas. – bobince
entendido. ¡Gracias! – kikito