Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo Essa deciso importante Para que serve este documento? A Microsoft no quer mais continuar com o IE6 O bsico Para que serve o HTML? O comeo e a interoperabilidade Introduo a Guerra dos Browsers O mercado de browsers Tudo mais chato Mais cdigo, mais manuteno Mantendo duas verses Mais imagens, menos velocidade Mais investimento... muito mais. Se protegendo contra o inevitvel Comentrios Condicionais CSS Hacks Javascript pode ajudar No customize elementos restritos Mire os motores de renderizao e no os browsers
Gecko Presto Webkit Trident
5 5 5 6 6 6 7 8 10 12 12 12 13 13 15 15 15 16 16 16
17 17 17 18
Perfeito at onde podemos chegar Gracefull Degradation e Progressive Enhancement Prefixos dos browsers Concluso
19 19 20 22
23
"It is fatal to enter any war without the will to win it." - General Douglas MacArthur
Introduo
Essa deciso importante
muito difcil tomar a deciso de no suportar browsers antigos ao produzir um grande site. Sempre h um nmero que se elevado a milhes de usurios o problema pode se agravar. Para uma grande empresa que tem 10 milhes de clientes, ignorar 1% destes usurios algo realmente fora de questo. O ponto que voc no precisa ignorar estes valiosos 1%. Mas tambm no precisa gastar milhes perdendo tempo tentando resolver os problemas que estes usurios trazem para a produo. Nossa ideia aqui dar a melhor experincia que eles podem ter sem prejudicar os outros 99%. O nmero de 1% que eu citei acima simblico. Este 1% varia de empresa para empresa. Depende do porte, depende do mercado. Pode ser que no seu caso eu esteja falando de um mercado de 80.000 usurios, mas que 10% destes usurios utilizam um browser antigo. Quero que entenda que voc ou o seu cliente no vai perder seus visitantes/usurios/clientes. Entenda que esse documento traz informaes importantes para que voc economize tempo e dinheiro e saiba realmente qual o problema. Acredite, mais fcil do que se imagina. Mas primeiro preciso que voc visualize o cenrio. Se quiser pular toda essa baboseira, no faa isso. Tente tomar um tempo para ler e entender exatamente o que quero dizer aqui.
Quero dizer isso novamente para que fique claro: no estou dizendo para voc deixar de dar suporte a estes meios de acesso. Certamente voc perderia dinheiro e tempo se fizesse isso. Quero sugerir outro caminho, um caminho mais inteligente.
Este deve ser um motivo muito relevante para tomar uma deciso sensata. A Microsoft lanou no dia 04/03/2011 um website chamado The IE6 Countdown2, onde ela incentiva fortemente a migrao do IE6 para uma verso mais atual, no caso o IE9. Claro que a Microsoft no est indicando a migrao para qualquer um dos browsers concorrentes, mas c entre ns, isso no importa. O que realmente importa que a prpria Microsoft est ciente dos problemas que o IE6 acarreta na produo web. O interessante que a Microsoft sabe que algumas empresas tem srias restries de upgrade de software e por isso ela divulgou alguns estudos de casos de grandes empresas que fizeram a migrao, como a Dell. No site voc tambm encontra um estudo de impacto financeiro referente a migrao do IE6 para o IE8. No ms de Fevereiro de 2011, de acordo com a Net Applications3, o IE6 tinha 12% de marketshare no mundo todo. A Microsoft quer diminuir essa porcentagem para menos de 1% com a ajuda da campanha. Voc pode seguir a campanha pela hash tag no Twitter #ie6countdown.
O bsico
Voc j deve saber para que serve o HTML. Mas se quiser se aprofundar ainda mais sobre assunto, abaixo descrevo o conceito e a teoria da utilidade do HTML. algo bem simples de ser entendido e que mesmo voc no sendo tcnico conseguir assimilar bem. Se voc quiser pular essa parte, fique vontade, mas aconselho de verdade que voc a leia em algum momento posterior.
A Web foi criada para ser um ambiente onde fosse possvel trocar informaes livremente e que essas informaes pudessem ser acessadas ao redor do planeta por qualquer pessoa ou meio de acesso. Em 1994, foi criado o W3C4 (World Wide Web Consortium): um consrcio internacional onde so desenvolvidas os padres para a web (Web Standards) tais como: HTML, CSS, XML, XSLT, entre outros. O HTML baseado no conceito de Hipertexto. Hipertexto so conjuntos de elementos ou ns ligados por conexes. Voc pode chamar este ns de LINKS. Estes links podem ser elementos como palavras, imagens, vdeos, audio, documentos etc. Eles no esto conectados linearmente como se fossem textos de um livro, onde um assunto ligado ao outro seguidamente. A conexo feita em um hipertexto algo imprevisto que permite a comunicao de dados, organizando conhecimentos e guardando informaes relacionadas. H muita histria por trs disso. Se estiver mais interessado do que eu imagino leia sobre Memex 5, criado por Vannevar Bush 6. Para distribuir informao de uma maneira global, necessrio haver uma linguagem que seja entendida universalmente por diversos meios de acesso. O HTML se prope a ser esta linguagem.
2 3
Desenvolvido originalmente por Tim Berners-Lee o HTML ganhou popularidade quando o Mosaic - browser desenvolvido por Marc Andreessen na dcada de 1990 - ganhou fora. A partir da, desenvolvedores e fabricantes de browsers utilizaram o HTML como base, compartilhando as mesmas convenes.
O comeo e a interoperabilidade
Entre 1993 e 1995, o HTML ganhou as verses HTML+, HTML2.0 e HTML3.0, onde foram propostas diversas mudanas para enriquecer as possibilidades da linguagem. Contudo, at aqui o HTML ainda no era tratado como um padro. Apenas em 1997, o grupo de trabalho do W3C responsvel por manter o padro do cdigo, trabalhou na verso 3.2 da linguagem, fazendo com que ela fosse tratada como prtica comum. Voc pode ver as mudanas em http://migre.me/3ZhIF. Desde o comeo o HTML foi criado para ser uma linguagem independente de plataformas, browsers e outros meios de acesso. Interoperabilidade significa menos custo. Voc cria apenas um cdigo HTML e este cdigo pode ser lido por diversos meios, ao invs de verses diferentes para diversos dispositivos. Dessa forma, evitou-se que a Web fosse desenvolvida em uma base proprietria, com formatos incompatveis e limitada. Por isso o HTML foi desenvolvido para que essa barreira fosse ultrapassada, fazendo com que a informao publicada por meio deste cdigo fosse acessvel por dispositivos e outros meios com caractersticas diferentes, no importando o tamanho da tela, resoluo, variao de cor. Dispositivos prprios para deficientes visuais e auditivos ou dispositivos mveis e portteis. O HTML deve ser entendido universalmente, dando a possibilidade para a reutilizao dessa informao de acordo com as limitaes de cada meio de acesso.
7 8
http://en.wikipedia.org/wiki/WorldWideWeb http://en.wikipedia.org/wiki/Mosaic_(web_browser) 8
Depois que James H. Clark investiu no projeto o Mosaic virou Netscape. E aqui que comea nossa guerra. O Netscape ento virou o browser mais popular da web e era atualizado com frequencia trazendo novas features para seus usurios. O primeiro Internet Explorer foi lanado no Windows 95 Plus. A partir da os dois browsers comearam a briga por usurios. Era uma briga ferrenha onde cada um dos browsers tentava se adiantar e lanar uma verso melhor que a outra. At a, timo. Concorrncia sempre bom! O problema que o W3C neste tempo ainda era muito imatura. Os padres que eles sugeriam no eram reconhecidos e como eu disse, eram apenas sugestes e recomendaes de uso. O W3C nunca pode impor o que os desenvolvedores devem ou no seguir e a mesma coisa se aplica os fabricantes de browsers. Alguns dos pontos mais importantes para o desenvolvimento de websites ainda no estavam claros o que levou a Netscape e a Microsoft criarem cdigos proprietrios. Quem no se lembra das tags LAYER, BLINK e MARQUEE? Outro problema foi que a popularidade da criao de websites com tabelas ganhou fora. Isso dificultou muito a vida de todos ns at hoje e atrasou a adoo dos padres pelos desenvolvedores e pelos fabricantes de browsers. O trabalho com as tabelas era insano. Levava-se muito tempo para fabricar um website com um design elaborado. Algumas features interessantes de Javascript e CSS no funcionavam uniformemente nos browsers o que levou os desenvolvedores a criarem sempre duas verses do website. Era comum que ao entrar nos websites voc escolhia qual dos browsers voc estava usando para que voc fosse redirecioando para o website correto. Toda essa confuso durou algum tempo at que um grupo de desenvolvedores resolveram fazer uma revoluo. Eles formaram um movimento chamado WaSP - Web Standards Project9. Estes caras so os responsveis por fazermos websites com padres web hoje. Eles convenceram todo mundo a desenvolverem websites utilizando melhores prticas e de acordo com o que o W3C falava. Sem dvida estamos vivendo um cenrio muito melhor do que o cenrio anterior. Isso tende a melhorar com o tempo com toda a concientizao de seguir os padres web, tanto dos desenvolvedores quanto dos fabricantes de browsers. A cada ciclo completado, ou seja, a cada browser antigo que se extingue, novas portas se abrem e o trabalho com web fica mais interessante. O trabalho no diminui, mas com certeza mais facilitado.
http://www.webstandards.org/ 9
O mercado de browsers
Atualmente - at o dia em que escrevi este captulo (Janeiro de 2011) - existem 5 principais browsers. As verses listadas so as atuais at a data de quando este documento foi escrito: 1. 2. 3. 4. 5. Chrome 9 Firefox 3.6 (j possvel baixar o Beta 4) Internet Explorer 8 (j possvel baixar o Beta 9) Opera 11 Safari 5
Todos eles tem quase 100% de suporte para o CSS 2.1 e parte do CSS 3, pelo menos a parte que facilita o desenvolvimento. Apenas os browsers que tem motor Webkit (Chrome e Safari) tem suporte a CSS3 Animation ou 3D. Abaixo segue um grfico de Janeiro de 2010 at Janeiro de 2011 que mostra o marketshare dos browsers listados acima. Esta uma viso Global. Iremos analisar mais pra frente o mercado especificamente do Brasil.
Veja que o Internet Explorer at hoje lidera o topo com uma pequena baixa. Desde quando o Firefox surgiu o Internet Explorer tem perdido vagarosamente seus pontos de ano em ano. Com Chrome e Safari isso melhorou um pouco, mas ainda assim a grande maioria utiliza o Internet Explorer como seu browser padro. Temos que entender que o IE tem tantos adeptos por conta do monopolio da Microsoft. Mas o Internet Explorer 8 e at mesmo a verso 7 em alguns casos no apresentam muitos problemas de renderizao ou compatibilidade como o Internet Explorer 6 apresenta. Abaixo vemos o mesmo grfico colocado acima, mas agora com a verso dos browsers descritas para que tenhamos uma viso mais interessante do mercado.
10
Veja que o IE6 tem algo em torno de 5% de marketshare no mercado de browsers. O IE7 tem em torno de 10% e o IE8, liderando o trio com 30%. O problema de se ter vrias verses de um mesmo browsers que em cada verso os fabricantes implementam muitas atualizaes que podem quebrar a compatibilidade de alguns sites. Isso acontece em atualizaes pontuais, como por exemplo os problemas que acontecem com o Firefox entre as verses 3.0 e 3.5/6. H muitas diferenas entre Firefox 3.0 e verses posteriores. A verso 3.0 representa globalmente 1.53% dos usurios. Felizmente os usurios de Firefox entendem que o browser tem atualizaes de tempos em tempos, facilitando a reciclagem de verses.
11
problema. normal separarmos um ou dois arquivos de CSS para corrigir bugs nos browsers antigos. Alm de se preocupar com o cdigo integral, feito para funcionar em browsers novos, precisamos lembrar de corrigir e manter outra verso do CSS e Javascript para os browsers como o IE6. Qualquer alterao no cdigo, necessrio reproduzir - muitas vezes utilizando hacks - nos arquivos que cuidam exclusivamente para os browsers antigos. Em vez de fazer manuteno em um cdigo, voc precisa fazer em dois. No estamos falando aqui apenas de CSS. Muitas vezes necessrio manter separados cdigos de Javascript para manipular apenas os browsers antigos.
Fato: at a verso 8 do Internet Explorer no h suporte a bordas arredondadas. Para os outros browsers, utilizamos apenas uma linha de cdigo. No necessrio criar imagens e elementos extras. Para o Internet Explorer, na melhor das hipteses, precisamos criar dois novos elementos e duas imagens extras. A voc fala: Voc tem preguia de criar duas imagens e digitar duas linhas a mais de cdigo? No preguia. Para mim s um pouco mais de trabalho. O problema so as implicaes disso. Para manter o controle terei que fazer esses elementos via javascript, isso significa mais processamento do Browser e consequentemente mais processamento de mquina. Terei que baixar duas imagens a mais no servidor, o que significa mais duas requisies de imagens. Se houver outros tipos de botes diferentes no site, sero outras imagens a serem baixadas, requisitadas e montadas via Javascript para formar o boto. H casos onde o uso de CMSs como o Vignette dificultam o uso de Javascript em elementos de uma forma mais genrica. Ento o cdigo que colocaramos via JS para facilitar as coisas dever ser colocado manualmente em cada elemento que precisa de bordas arredondadas. O ponto aqui no criar mais imagens ou fazer mais linhas de cdigo. Isso importante evitarmos. O problema que voc vai concentrar mais ou menos 30% do seu esforo de trabalho para tentar manter a compatibilidade visual para um browser que tem um tempo de vida restante muito curto. No vale a pena concentrar o tempo de um desenvolvedor para cuidar deste browser. Os usurios deste browser nem vo perceber a borda arredondada dos botes. Para eles isso detalhe. Eles esto interessados se o site estar ou no funcionando. Este o ponto principal e o que eu protejo aqui. Voc pode matar alguns elementos visuais do site, mas ele ainda sim precisa funcionar perfeitamente em qualquer lugar.
J vi sites serem vendidos por R$500 e outros por milhes. Obviamente o valor depende muito da complexidade do projeto e do cliente. Se voc acha mesmo que vale a pena ter uma, duas ou mais pessoas focadas em manter a compatibilidade com browsers antigos, prepare-se, isso vai sair caro e seu projeto pode atrasar. o pior dos mundos. Ningum quer ter um projeto mais caro e que tenha mais riscos de atraso. Para que voc realize melhor o que quero dizer: suponha que o valor de hora/homem seja de R$100. Para implementar HTML/CSS/Javascript da home de um site, nos meus bons tempos, eu levaria algo em torno de 4 horas... 5 se o layout for complicado. Isso nos d R$500. Se for contar com a implementao do IE6, isso pode dobrar facilmente porque terei que criar um CSS apenas para este browser. No poderei utilizar PNG porque ele no tem suporte a este tipo de imagem. Posso utilizar um plugin de Javascript para tentar fazer funcionar o PNG, mas isso deixaria o site um pouco mais lerdo e no h nenhum plugin que no d algum tipo de problema de conflito ou defeito na hora de renderizar que valha o trabalho da implementao. Sem contar que se eu usar estes plugins, terei que listar todos os meus elementos ou imagens que so PNG para que o script funcione sem problemas aparentes. Se eu decidir no utilizar um script deste, terei que criar uma imagem em GIF para cada uma das imagens que so PNG. Como o GIF no tem canal alpha de opacidade, terei que me manter atento para que as imagens que tenham fundo com gradiente fiquem na posio correta para que no haja diferenas de cores entre o background e o GIF.
13
Estamos falando apenas do recorte de imagens, sem contar as diferenas de layout e os bugs que preciso prever para que os elementos no quebrem a diagramao do site. Se colocarmos na ponta do lpis isso pode levar o dobro do tempo de desenvolvimento. Sem contar o tempo de manuteno posterior ou algum planejamento de escalabilidade para o futuro. No nosso exemplo o valor do sitezinho de R$500 virou algo em torno de R$1000 ou R$1500. Isso tudo gasta muito tempo. E se tempo dinheiro, gasta-se muito dinheiro. E esse caso no justifica o investimento. O seu dinheiro, quer dizer, o dinheiro do seu cliente foi pro belelu.
14
Comentrios Condicionais
Os Comentrios Condicionais so blocos de comentrios em HTML criados especificamente para o Internet Explorer. Eles servem para separar um determinado cdigo para que apenas o Internet Explorer consiga entender e renderizar. Isso til porque de longe o Internet Explorer o que mais causa problemas de diagramao. Os Comentrios Condicionais podem ser chaveados para que uma determinada verso do IE. Eu sugiro que se voc utilizar os comentrios, voc tente fazer isso para apenas a verso mais antiga do IE, que no caso a 6. Se mesmo assim voc tiver problemas com outras verses do IE, a minha sugesto manter um arquivo de CSS s para IE6 e outro para as outras verses. Isso tambm serve para Javascripts que sero apenas utilizados para suprir necessidades de compatibilidade dos IEs, como por exemplo scripts de PNG ou scripts que prometem melhorar a compatibilidade dos IEs com o CSS.
CSS Hacks
Os CSS Hacks so cdigos de CSS que aproveitam um bug de interpretao de um determinado browser para fazer com que este mesmo browser entenda um determinado cdigo CSS. No uma boa prtica, mas muitas vezes no possvel evit-la. De ponto de vista de sintaxe, o CSS Hack errado. Veja um exemplo: quando voc coloca um underline antes da propriedade do CSS, como por exemplo _width: 200px; essa propriedade s reconhecida pelo IE6. Isso acontece porque a maneira errado escrever a propriedade do CSS com um underline na frente, por isso os outros browsers ignoram esse cdigo, e ento voc tem a vantagem de poder escrever uma propriedade de CSS que ser interpretado apenas no IE6. Se alguma coisa no layout estiver errada no IE6, eu posso resolver assim. O problema que isso no pode ser comum no cdigo de CSS. A ento prefervel que voc utilize comentrios condicionais, separando um arquivo de CSS s para o IE6 para evitar o uso de Hacks. Abaixo segue trs exemplos de hacks para os IEs:
Verso do IE
6 7 8 Lembre-se: use com moderao.
Exemplo de Hack
_width: 200px; *width: 200px; width: 200px\0/;
15
CSS Hacks uma praga se no for utilizado com inteligncia e em lugares muito pontuais. No vale a pena voc fazer Comentrios Condicionais se voc for apenas para acertar um erro de alguns linhas, nesse caso o CSS Hack se encaixa muito bem. Mas s para casos pequenos desse tipo.
O Javascript tem ganhado muita popularidade entre os programadores. uma linguagem muito verstil e est presente desde o incio da web. Ela fecha o trio das trs camadas onde o HTML cuida da semntica e exibio da informao, o CSS cuida do visual e apresentao dessa informao nos diversos meios de acesso e o Javascript controla o comportamento dos elementos manipulando suas caractersticas via CSS. Com os frameworks como JQuery fcil controlar o comportamento dos elementos. Para os desenvolvedores client-side saber pelo um framework de Javascript essencial. Se voc programador voc precisa aprender a linguagem. Frameworks de Javascript servem para facilitar o trabalho de manipulao de comportamento dos elementos. O Javascript pode ajudar muito na criao e estruturao de um website. Normalmente, quando queremos manter a compatibilidade e visual fiel em todos os browsers, necessrio criar alguns elementos extras, por exemplo, se quisermos fazer um box com largura e altura flexivel com os quatro cantos arredondados, precisamos inserir no HTML 4 elementtos que no tem significado semntico nenhum. Estes elementos no traro informao nenhuma para o usurio final. Sero apenas teis para criar cantos arredondados. Logo, no faz sentido colocarmos esse cdigo direto no HTML porque pode causar problemas de acessibilidade e prejudicar a indexao dos buscadores. Por isso colocamos estes elementos dinamicamente via Javascript. Por isso o Javascript um aliado forte para o desenvolvedor client-side. Alm disso existem outros plugins que podem ajudar na adequao visual do site. Infelizmente quanto mais especfico o plugin, pior o seu comportamento nos browsers antigos. Eu sugiro sempre tentar criar scripts para utilidades simples. Sem inventar muito.
Chamo de elementos restritos objetos como Combo box (ou selectbox), checkbox e radio box. Eu no sei quem falou para os designers de website que eles poderiam fazer uma arte bacana no photoshop para estes elementos... A customizao destes elementos um problema. No h maneira fcil hoje me dia para fazermos isso. O nico lugar que permite um nvel interessante de customizao destes elementos via CSS no Mobile Safari presente no iPhone, iPod e iPad. Fora isso a personalizao muito restrita. Conseguimos customizar campos de formulrios e textareas e mesmo assim com bastante custo e bugs nos Internet Explorers. Sempre que estiver envolvido com o incio do projeto, procure estes elementos customizados e tente falar com o responsvel da equipe para manter o visual padro. Outro problema para customizar estes elementos a acessibilidade a usabilidade. Os usurios esto acostumados com os elementos do sistema. Customiz-los pode fazer com que o usurio se perca ou fique em dvida sobre o elemento.
Os browsers so muitos. Voc tem o Firefox, Safari, Opera, Chrome, Internet Explorer. Se formos extrapolar as verses, s de Internet Explorer voc precisa se preocupar hoje com 3: IE6, IE7 e IE8. Futuramente, se continuar do jeito que est IE9. O Firefox quer ter at o final de 2011 a verso 7 do seu browser.
16
H tambm os browsers para mobiles: Browser do Android, Mobile Safari do iPhone, o browser do BlackBerry e tambm dos celulares Nokia. Para quase todas essas plataformas tem o Firefox e alguns outros browsers que prometem uma vida melhor. Realmente so muitos browsers. Eu no gosto de focar nos browsers em si, prefiro me focar nos motores de renderizao. Os browsers tem um motor (engine) que leem o HTML/CSS/Javascript e montam essa informao na tela do usurio. Segue abaixo uma listagem destes motores:
Browser
Firefox, Mozilla, Flock Opera Internet Explorer Safari, Chrome, Mobile Safari e browser para Android, novos browsers da BlackBerry e alguns outros da Nokia
Motor
Gecko Presto Trident
Webkit
Veja que listamos diversos navegadores envolvidos em apenas 4 motores de renderizao. Normalmente quando vrios browsers so feitos com um mesmo engine, eles tem comportamento praticamento iguais. Ou seja, 90% das coisas que voc fizer com CSS e ver no Safari para Desktop, vai funcionar no iPad, iPhone, iPod, Blackberry (s os novos) e alguns Nokia. Com uma pancada, voc resolveu vrios problemas. Isso interessante j que a tendncia sempre aumentar o nmero de browsers. Quanto mais um nmero de browsers se aglomerar de baixo de uma mesma engine, melhor para ns. Abaixo segue algum comentrio sobre cada um dos engines mais populares.
Gecko
Motor com cdigo aberto. utilizado nas aplicaes da Mozilla: SeaMonkey, Camino, Firefox, Thunderbird etc. Gecko um motor herdado do antigo Netscape, baseado no Mosaic. Depois da Guerra dos Browsers, a Netscape doou o motor de renderizao para a comunidade, que culminou na criao da Mozilla.
Presto
Motor proprietrio da Opera Software. A Opera uma das empresas que mais inovam no mercado de browsers. Embora eles tenham tecnicamente um dos melhores browsers para desktops, a verso mobile a mais utilizada. Eles tem duas verses: Opera Mobile, para smartphones e Opera Mini, para celulares mais bsicos. A Opera tambm est muito presente em outros mercados fora da web.
Webkit
Motor com cdigo aberto, utilizado hoje em aplicaes como Safari, Safari Mobile e Chrome, browser do Google. A BlackBerry10 j anunciou que vai fazer seus browsers com Webkit. o mais novo motor de renderizao do mercado. Foi criado pela Apple, baseando-se no motor de renderizao KHTML, que estava s presente em browsers para Linux, como o Konqueror. Aproveitando
10
http://migre.me/3ZpvQ 17
que o KHTML um sistema OpenSource, a Apple modificou todo o seu cdigo, fazendo melhorias e aperfeioando-o para criar seu browser o Safari. A Apple fez vrias outras modificaes posteriores em cima desta primeira verso. Deu o nome de Webkit, e hoje, conduz o desenvolvimento dessa plataforma.
Trident
o motor proprietrio da Microsoft. utilizado em aplicaes como Outlook e claro, no Internet Explorer. Eles esto criando um novo motor, que foi utilizado no Internet Explorer 8 e ser usado em verses posteriores. Embora o Trident fora o primeiro a suportar completamente o CSS 1.0, atualmente ele o motor de renderizao mais atrasado. A Microsoft vem fazendo um bom trabalho para tentar recuperar essa m fama, mas mesmo assim, os outros motores do mercado esto muito alm. Num futuro prximo a diferena entre um ou outro browser no ser apenas a capacidade do seu engine. Todos esto caminhando para serem complacentes com os padres e isso um dia deixar de ser problema. Bom para gente, bom para web.
18
11
http://en.wikipedia.org/wiki/Graceful_degradation
19
O Progressive Enhacement12 ou simplesmente PE faz o sentido contrrio. Em vez de voc colocar todas as coisas lindas que voc quer e depois pensa em como retirar isso caso d defeito nos browsers antigos, voc primeiro faz funcionar de maneira muito simples nos browsers antigos e depois comea a detalhar tanto o visual quanto o funcional para que os browsers modernos funcionem melhor. O Alysson Franklin, um dos editores do Tableless.com.br detalhou essas duas tcnicas em um artigo muito bem escrito chamado Bem-vindo a Xangri-l dividido em 2 partes: Parte 1 - http://www.tableless.com.br/bem-vindo-a-xangrila-parte-1 Parte 2 - http://www.tableless.com.br/bem-vindo-a-xangrila-parte-2 O Gracefull Degradation no invalidade pelo Progressive Enhancement. Os dois andam juntos e o Progressive Enhancement totalmente inspirado no Gracefull Degradation. Arrisco dizer que ele e o Gracefull Degradation aprimorado.
Muitas das caractersticas do CSS, principalmente da sua verso 3 ainda esto em fase de adquao e testes, portanto elas no foram implementadas definitivamente em alguns browsers e para evitar conflitos e tambm conseguir informaes de feedback sobre o funcionamento dessas propriedades para fazer futuras adaptaes ou correes. Outro ponto importante, que algum destes fabricantes de browsers podem querer suportar uma determinada propriedade que ainda no faz parte do core do CSS mas que poderia ser muito til para voc utilizar em lugares especficos hoje, com muita cautela, claro. A tabela abaixo nos mostra os prefixos dos principais browsers do mercado. Durante toda minha experincia com Web, utilizei muitas vezes os prefixos do Firefox, Safari e Opera, quase nunca utilizei o prefixo para Internet Explorer. Talvez, com a vinda do IE9 passemos a utilizar mais o prefixo da Microsoft para implementar propriedades que eles estejam planejando incluir nas verses posteriores do IE, mas no tenho tantas esperanas. A Microsoft precisa se esforar muito para recuperar a confiana dos desenvolvedores.
Browser
Opera Safari Firefox Chrome Internet Explorer
Prefixo
-o-webkit-moz-chrome-ms-
Tenha em mente que os prefixos no so Hacks de CSS. Nem se comparam. Com os prefixos voc est ajudando os fabricantes e o W3C a entenderem melhor novas propriedades. Concordo com voc que o cdigo no fica muito bonito de se ver e que pode causar muito transtorno quando mal organizado. Diferentemente dos css-hacks os prefixos fazem parte dos padres web. Os csshacks exploram uma falha/bug do browser criar um cdigo que apenas aquele browser leia ou ignore. Normalmente para isso usamos a sintaxe do CSS de forma errada como: w\idth:200px; ou _width:200px;.
12
http://www.alistapart.com/articles/understandingprogressiveenhancement/
20
Fazendo isso estamos colocando o projeto em risco futuramente. Os browsers passaro a ignorar esse cdigo e se seu CSS estiver baseado nele, provavelmente algo vai quebrar. Eu costumo sugerir esse tipo de hack apenas para verses muito antigas do IE como a verso 6, que uma verso que no cenrio atual oferece muitos problemas de compatibilidade.
21
Concluso
Realmente a ideia deste documento no degradar nenhum tipo de browser ou bater de frente com equipes que optam em manter a compatibilidade nivelando por baixo. No esse o intuito. Quero que voc desenvolva projetos mais elaborados. No quero que voc gaste tempo e dinheiro toa se voc pode ter resultados melhores se mudar um pouco o foco do desenvolvimento. Quero que voc entenda que os visitantes que utilizam browsers antigos so sempre a minoria. Lembre-se de que na web voc no pensa no passado, mas no futuro.
22
23