Porque as propriedades do CSS mudam nos navegadores - Stack Overflow em Português
Porque as propriedades do CSS mudam nos navegadores [duplicada]
Por que dependendo do navegador existe a necessidade de usar propriedades diferentes? Por exemplo:
Existem muitos outros casos, mas, o que quero saber é por que não é simplesmente "column-width" e se os outros navegadores não entendem todos.
perguntada 14/02/14 às 14:02
O que você está apontando é chamado de vendor prefix.
De maneira sucinta, isso acontece porque o processo de adição de uma nova especificação ocorre de maneira independente entre implementações. O processo geralmente ocorre da seguinte maneira:
O W3C (World Wide Web Consortium) cria uma especificação.
Diferentes vendors (Mozilla, WebKit, etc) iniciam a implementação; durante este período são utilizados os vendor prefixes, de maneira a ajudar a identificação de diferentes comportamentos;
O padrão é finalizado, o formato final é estabelecido, e vendor prefixes relativos utilizados durante a implementação são declarados obsoletos (em inglês deprecated).
border-radius é discutido e sugerido em 2012.
-webkit-border-radius é implementado para Safari 3-4, iOS 1-3.2 e Android 1.6;
-moz-border-radius é implementado e utilizado no Firefox 1-3.6;
Depois de um período de amadurecimento, border-radius é considerado estabelecido e disponível para Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4 e Android 2.1+.
O problema é que você não é prático reimplementar todo código que possui uma menção às versões com vendor prefix - então eles são mantidos por questões de compatibilidade. Com isso, é mantida uma 'tabela' interna de resolução que redireciona menções vendor-specific para suas versões finais.
Para evitar o efeito de bloating, empresas como a Google planejam monitorar o uso de certas tags CSS e prever o impacto da remoção do conteúdo obsoleto.
editada 14/02/14 às 14:38
respondida 14/02/14 às 14:11
Mas a tendência é que com o tempo eles caiam em desuso, sejam depreciados e por fim descontinuados. – Erlon Charles 14/02/14 às 14:17
Isso iniciou quando essas propriedade começaram a ser desenvolvidas, dessa forma o w3c ainda não havia feito as definições sobre as propriedades.
Então os produtores de cada navegador passou a usar nomes que relacionassem as propriedades aos seus navegadores como um forma de não conflitar a interpretação dessa propriedade com outros navegadores eles fora chamados de vendor prefix.
Hoje você pode ver que existem várias propriedades que além de ter o -moz- ou -webkit- também são escritas sem, como o border-radius por exemplo, isso quer dizer que a w3c já padronizou a propriedade, dessa forma todos os browser "tem" que entender tanto a sua nomenclatura quanto a nomenclatura da w3c.
editada 14/02/14 às 14:16
respondida 14/02/14 às 14:08
É porque essas são propriedades usadas durante o aperfeiçoamento do código do navegador, de forma que, uma vez que tudo esteja perfeito, sejam usados os nomes recomendados pelos padrões.
Isso quer dizer que em um dado ponto, o navegador passa a aceitar o nome indicado pelo padrão.
Note que não existe nenhuma garantia de que os nomes particulares de cada marca, sirva para o propósito que o nome padronizado propões.