Uma das coisas que gosto bastante nos tempos modernos da web é o “tableless layout” que a utilização de CSS fornece. Não só isso como torna bastante mais fácil criar “skins” para os websites, deste modo permitindo que a mesma aplicação web tenha aspecto completamente diferente conforme o utilizador. Este conceito é de tal modo apelativo que até o podemos encontrar nas versões mais recentes de aplicações de Windows com o WPF com o seu XAML, estando agora também a ser utilizado em Silverlight.
No entanto não há bela sem senão, e neste caso tem até alguns senãos, entre os quais eu considero pior duas problemas.
Em primeiro o CSS apesar de ser um standard que está na versão 2.1 de utilização comum, estando a versão 3 em últimos retoques, nunca é certo o resultado que vai aparecer. Isto acontece porque existem 4 browsers principais (talvez não a nível de cota de mercado), mais especificamente 4 motores principais, cada qual com a sua implementação/interpretação do CSS. Deste modo tem que se fazer vários “hacks” de modo à nossa aplicação aparecer exactamente como queremos em todos os browsers.
Em segundo, não é um problema do CSS mas sim um de ASP.Net+CSS, isto porque para os componentes próprios de ASP.Net existe algo semelhante ao CSS chamado de skinfile, sendo algo que considero redundante, pois esses componentes no final não vão passar de HTML como todo o conteúdo web básico. No entanto criar CSS para o resultado desses componentes pode não ser linear devido ao facto que nem todos os componentes ASP.Net são “neutros” em termos de CSS, alguns resultando em estilos sem borda e configurações semelhantes quando nenhuma informação de estilo é fornecida, algo que espero que seja um bug e não algo propositado.
Apesar de tudo, mesmo apenas com CSS é possível criar aspectos fabulosos, sem ser necessário algo como Silverlight ou Flash.
Aconselho vivamente uma visita ao CSS Zen Garden e à sua exploração, sendo que é sempre a mesma página, mas cada link leva a outro CSS ou visualização dessa página. Tem alguns que são simplesmente fabulosos.