Seguinho a linha do post "Style vs ClassName", coloco minha opinião sobre o uso de Id's ou className para ligação com o estilo(css) do elementos no html.
Se verificarmos no documento do w3c a especificidade dos seletores (http://www.w3.org/TR/REC-CSS2/cascade.html#specificity), há valores para cada tipo deles.
Basicamente os valores são:
Seletor Universal ( * ) valor = 0
Elementos ( DIV ) valor = 1
className ( .class ) valor = 10
#ID ( #Block ) valor = 100
A conta é bem simples, se temos:
div ul li /* 1 + 1 + 1 = 3 */
{
color:red;
}
.lista li /* 10 + 1 = 11 */
{
color:blue;
}
Ou seja, ao usar um class junto aos elementos vc está tornando a 2° regra mais forte que a 1° e isso terá uma importância imensa para o browser. Porque nesse bloco de estilo ai de cima o LI será azul.
Entender essa conta facilitará na hora de escrever o css evitando o uso demasiado de estruturas como por exemplo "table tr td p", não há necessidade, apenas "table p" será suficiente, e isso evitará arquivos css mais pesados e mais complexos de ler.
Ao usar IDs o problema é maior é quebrar toda a herânça dos elementos pelo fato dele ser o seletor de maior valor(100) e também travar o uso do javascript pq ID tem que ser únicos, ou seja, tendo um id "coluna" na página vc não poderá ter mais outro ID "coluna".
Com className, além de mais simples, vc ainda pode concatenar classes (como mostrado no post "className vs style") e não ter problemas com colisão de nomenclaturas com a programação javascript porque vc estará trabalhando totalmente desconectado dela.