copia e incolla nella tua pagina all'interno dell'elenco così ti rendi conto del primo erroreTi potresti spiegare in maniera più elementare
se il link deve essere nero, il nero dobbiamo impostarlo su di esso (<a class="primo" ...> e non sul suo contenitore.codice:<li class="primo">questo testo è nero perché nella classe "primo" ho assegnato il colore nero <a href="#">questo è un link, le sue impostazioni saranno quelle predefinite oppure impostate nel css per i link</a>
Ma se pure imposti la tua classe sul link, non funzionerà.
Quando si definiscono direttamente degli elementi ("a" nel tuo caso) e poi si vogliano differenziarli, è possibile vi siano conflitti o interferenze e visualizzazioni non volute, per questo potrebbe essere più conveniente lasciare i vari link del tutto indipendenti creando direttamente classi diverse, ad esempio
Ma se non vogliamo creare troppe classi e stiamo seguendo un certo criterio, allora facciamolo sino in fondo.codice:a.menu {proprietà1: xxx; proprietà2: yyy; proprietà3: zzz;} a.submenu {proprietà1: aaa; proprietà2: bbb; proprietà3: zzz;}
Nel tuo caso, quand'anche applico la classe "primo" al link in primo piano questo continua ad essere grigiastro e non nero perché le impostazioni cui il browser dà priorità sono quelle di "ul#menu2livelli a {...}"
Poiché stai usando selettori discendenti, definendo elementi all'interno di altri, allora continuiamo su questa strada seguendo il giusto ordine e applicando il nero come colore di partenza generale
lasciamo le indicazioni per i vari stati dei link (aggiungi una "," saltata, dopo a:focus)codice:ul#menu2livelli a { display: block; padding: 2px 2px; text-decoration: none; color: #000; }
e sovrascriviamo il colore per i link del sottomenucodice:ul#menu2livelli a:hover, ul#menu2livelli a:focus, ul#menu2livelli a:active{ color: #ff0000; }
oppure se vogliamo avere la nostra classe "primo" inseriamola cosìcodice:ul#menu2livelli li ul li a { color: #7f8c9c; }
codice:ul#menu2livelli a.primo {color:#000}![]()

Rispondi quotando