Hola:
Cuando se usa la almohadilla (#) se referencia a una etiqueta por su id, y como este no se debe duplicar, poner por delante un nombre de etiqueta no tiene sentido... o mejor dicho, puede ser ambiguo y es preferible evitarlo, así que en vez de div#miestilo debes usar #miestilo.
Con un punto por delante se referencia a un atributo class, y este sí que se puede repetir, así que div.miestilo y span.miestilo es válido.
Otra cosa interesante es que puede haber más de una clase separadas por espacios, o sea que vale esto:
.verde {color: green;}
.azul {color: blue;}
.grande {font-size: 14pt;}
.peque {font-size: 7pt;}
y puedes poner
<span class="verde grande">Hulk</span>
<span class="azul peque">Pitufo</span>
Saludos