Una clase define toda una "familia" de elementos con un estilo similar, podrían incluso ser elementos de distinto tipo (<p class="borde_rojo">, <div class="borde_rojo">, <span class="borde_rojo">, etc)
Un elemento definido con ID tiene el requisito imprescindible de ser
único en toda la página, es decir, no puede haber dos elementos con el mismo ID en la misma página, así que cuando defines un estilo con # te debes referir a un elemento concreto, por ejemplo, "menu_izquierdo", "barra_lateral_derecha", "div_contenedor", etc...
Te recomiendo al lectura de este
manual, es muy sencillo y completo, especialmento el capítulo de
selectores habla de estas dudas que panteas