Se você escreve CSS e HTML provavelmente tem problemas de compatibilidade e visualização. Isso é normal, acontece com os melhores desenvolvedores. Quando isso acontece, o melhor a se fazer é um trabalho investigativo. Esse trabalho normalmente é ingrato porque você demora horas investigando o seu código para encontrar o erro e geralmente esse erro é solucionado com uma linha de código. Para você descobrir qual é essa linha, você precisa de ferramentas que te ajudem a decifrar todo o problema. Vou indicar algumas aqui que você já deve conhecer.
Ferramentas de Inspeção
Hoje a maioria dos browsers tem sua própria ferramenta de inspeção. O Firefox incorporou a Firebug, o IE tem a Developer Tool, o Chrome e o Safari tem o web inspector do próprio Webkit. O Opera usa o Dragonfly.
Com estas ferramentas você consegue facilmente encontrar o elemento, verificar o seu estilo CSS e entender qual das propriedades está causando o problema. Você consegue editar essas propriedades e ver o resultado ali mesmo.
Entenda que essas ferramentas não são utilizadas para salvar seu CSS diretamente servem apenas para fazer o trabalho investigativo.
Além de nos ajudar com HTML e CSS, os “inspectors” nos ajudam muito com debugging de Javascript. Você consegue localizar exatamente um determinado problema adicionando observer points para verificar o funcionamento de partes do script.
XRAY
O XRAY é um bookmarklet que te mostra as informações sobre um determinado elemento apenas clicando em cima dele. Você salva o bookmarklet e pronto. Clicando em qualquer elemento, você consegue informações como tamanho, nome da classe e do id, hierarquia, margens e qualquer outro estilo relacionado ao elemento.
SelectORacle
Você já deve ter visto algum seletor muito, mas muito complexo e difícil de se entender. Algo do tipo:
[cc lang=”css”]
body > ol > li p;
:not(a);
p:not(.section);
body > h2:not(:first-of-type):not(:last-of-type);
ul li:nth-child(2n+3):not(:last-child);
ol li:nth-child(-3n+9);
ol li:nth-child(7n-3);
button:not([DISABLED]);
html|*:not(:link);
[/cc]
Se você parar alguns preciosos minutos você consegue entender exatamente o que cada um dos seletores quer dizer. O SelectORacle te fala em segundos o que cada um dos seletores quer dizer, explicando em poucas palavras cada uma das funções.
Validadores de HTML e CSS
Validar seu HTML e CSS não é ponto crucial para a aprovação do código pelo cliente, mas ele validar o código é muito importante para que ele não vá para a produção com erros de sintaxe. Estes erros podem causar grande parte dos erros visuais de crossbrowser. Cada browser se comporta diferente ao encontrar uma tag aberta ou colocada no lugar errado. Se o IE quebra o layout porque a tag não está fechada da forma correta, mas nos outros browsers o visual da página aparece normalmente, você logo fará um Hack para consertar o problema no IE.
Por isso é interssante que antes de incluir um CSS Hack em seu código, procure a SOLUÇÃO do problema antes de fazer um “workaround”.
O W3C disponibiliza o validador de HTML, que já está entendendo algumas coisas de HTML5. E o validador de CSS, que ainda não entende CSS3.