La almohadilla "#" sirve para reflejar la identidad, mientras que el punto "." sirve para reflejar la clase.
Por ejemplo, en los siguientes códigos:
Código:
<img alt="Logo de la página" id="logo" src="logo.jpg" />
<img alt="Primera imagen" class="imagen_varia" src="imagen1.jpg" />
Para referenciar correctamente cada caso en CSS sería:
Código:
#logo {border:2px solid blue;height:100px;width:300px;}
.imagen_varia {height:240px;width:240px;}
Además, en HTML no puede haber dos elementos con la misma identidad, e indefinidos de la misma clase.
Hay gente que prefiere usar siempre 'class' y utilizar el punto, pero yo creo que a veces no está mal separar un elemento único que nunca más se querrá, como el logo de una página.