Creo que hay 3 razones principales para esto:
- Algunos navegadores web no siguen estrictamente los estándares w3c o interpretan el estándar incorrectamente. Esto es muy común en los navegadores móviles debido a la limitación del dispositivo.
- El estándar w3c, aunque bastante detallado, no cubre todos los resultados esperados para todas las situaciones imaginables. Dependiendo de cómo se crea cada navegador, a veces habrá una situación en la que los resultados son diferentes en diferentes navegadores.
- Muchas propiedades de etiqueta y CSS no tienen un valor predeterminado especificado por el w3c, y los ejemplos más comunes son margen y relleno. Por lo tanto, cada proveedor puede elegir lo que quiera que sea el valor predeterminado. Los navegadores compiten entre sí para proporcionar a sus usuarios la mejor configuración predeterminada, para garantizar que sus usuarios tengan una experiencia agradable incluso en los sitios web más crudos. Esto le da a cada navegador su propio estilo y personalidad, y conozco a muchas personas que han elegido un navegador únicamente por su aspecto estético (* wink wink Opera *).