Ricominciamo da capo.
Al ti ha dato consigli che possono andar bene in qualche caso, ma che non si applicano necessariamente nel tuo caso specifico.
Anzitutto devi spiegare che DTD (=DOCTYPE) usi. Se e` XHTML ci sono molti errori di sintassi.
Secondo dovresti anche dire in quale/i browser stai testando: non tutti si comportano allo stesso modo.
Poi il problema potrebbe essere nel path del CSS: posta anche il <link> o comunque il modo con cui richiami lo stile.
Uno <span> dentro un altro span non so che senso abbia: forse c'e` un problema di semantica.
Ultima cosa: i blocchi vuoti possono venir ignorati dai browser, per cui mettici sempre dentro qualcosa.
PS: Converrebbe anche che passassi dai validatori, prima di postare: risparmieresti un mucchio di tempo in errori che i validatori trovano piu` facilmente degli umani:
validatore HTML e validatore CSS