A livello pratico che differenza c'è tra la definizione di un CSS tramite . e tramite #

... ok uno rappresenta la classe, ma a livello pratico qual'è la logica corretta da seguire nella definizione di un foglio di stile?

Grazie per l'aiuto