Após escrever seu HTML tendo em mente Progressive Enhancement (melhoria progressiva) e ter a certeza que caso um navegador não tenha suporte ao um determinado elemento o usuário não será prejudicado, podemos começar a implementar nossa segunda camada de tecnologia, nesse caso o CSS, responsável pelo design da nossa página.
Igual ao HTML, o CSS também evoluiu bastante nos últimos anos. Igual ao que ocorre com o HTML também, alguns navegadores não implementam essas novidades em seus navegadores. No CSS é relativamente fácil incrementar a melhoria progressiva. Quando temos uma propriedade duplicada, apenas a última propriedade é considerada.
Perceba o exemplo abaixo. A primeira imagem possui uma legenda com uma cor de fundo sólida. Isso é o que os usuários sem suporte a opacidade vão enxergar. Já na segunda imagem temos um exemplo de um navegador com suporte a opacidade. Perceba que o conteúdo (a legenda da foto) é mostrado, porém de uma forma um pouco diferenciada.
.txt-leg { position: absolute; bottom: 0; color: #fff; width: 685px; background: #000; background: rgba(0, 0, 0, 0.8); }
Perceba que temos duas propriedades de background
. Navegadores mais antigos ou sem suporte a essa propriedade só entenderão a primeira declaração background, os mais novos ou com suporte a essa propriedade entenderão as duas mas vão aplicar apenas a última declaração. A ideia é escrever as propriedades mais recentes abaixo das mais antigas….
Um segundo exemplo é o uso da propriedade de colunas das CSS.
Usuários com navegadores que tenham suporte a propriedade CSS de colunas mostrará o conteúdo em colunas. Para aqueles usuários com navegadores antigos ou que não dão suporte a essa propriedade verão o conteúdo em formato de lista. Repare que independente do suporte ambos os usuários verão a mesma informação, porém um pouco diferente. Isso que é importante, nunca crie um conteúdo que dependa de uma propriedade CSS para ser lido, entendido, etc. O segredo é sempre priorizar a informação, o conteúdo do seu site.
HTML
<div class="coluna"> <ul> <li>Lorem Ipsum is simply dummy text of the printing </li> <li>Lorem Ipsum is simply dummy text of the printing </li> <li>Lorem Ipsum is simply dummy text of the printing </li> <li>Lorem Ipsum is simply dummy text of the printing </li> <li>Lorem Ipsum is simply dummy text of the printing </li> <li>Lorem Ipsum is simply dummy text of the printing </li> </ul> </div>
CSS
.coluna { -webkit-column-count: 2; -moz-column-count: 2; column-count: 2; -webkit-column-gap: 2em; -moz-column-gap: 2em; column-gap: 2em; }
Usuários com suporte à propriedade colum vão ver o conteúdo em colunas…
… Usuários sem suporte terão o conteúdo apresentado em formato de lista
Outro ponto importante é só partir para uma outra tecnologia, por exemplo JavaScript, quando você realmente não conseguir fazer o que quer apenas com uma determinada tecnologia. vejo muitas animações simples feitas com JavaScript que poderiam facilmente ser feita com CSS.
Navegadores como IE 8, por exemplo, não vão mostrar o efeito de transição que foi aplicado com CSS, mas o conteúdo estará lá para ser acessado.
CSS tem novos recursos impressionantes para o desenvolvedor. Escrevendo seu CSS e principalmente pensando na melhoria progressiva podemos tirar o máximo de proveito de tudo que o CSS tem para nos oferecer, proporcionando benefícios para seus visitantes
Siga-me no Twitter: @kadunew ou assine nosso Feed e fique por dentro de todas atualizações aqui do blog.