Newsgroup: it.comp.lang.javascript
Titolo: Saro' un incapace ma non riesco (CSS - link)

Un cliente m'ha chiesto di realizzare un menu in cui gli elementi (titolo
del singolo menu e item) vengano visualizzati in grigio.
Ho settato visited in modo che resti dello stesso grigio.
Quando il mouse si trova sopra il menu, il colore del testo deve diventare
nero e cosi' dovrebbe succedere anche ai link visitati.
Il colore del testo lo cambio con una funzioncina semplice semplice che piu'
o meno fa
document.getElementById(nome).style.color = "colore";
Riccardo, in altra occasione, mi aveva consigliato di assegnare una diversa
classe con document.getElementById(nome).className = "nuovaclasse";
Nonostante i miei sforzi pero', la funzione che evidenzia il blocco di menu
selezionato (testo nero), non riesce a far si che anche i link assumando i
nuovi valori. In pratica ottengo che solo il titolo delmenu sia bero, i link
mi restano sempre con visited = grigio :-( ...
Nel codice HTML ovviamente assegno al link la classe di default.
Oltre che cambiare mestiere :-) che devo fare per ottenere il risultato che
spero di averti spiegato?
Claudio
--------------------------------
Inviato via 
http://usenet.libero.it

 document.getElementById(nome).style.color = "colore";
???
Perché fai ciň?
Non č molto piů semplice usare un normale foglio di stile?
a {color: grey}
a:hover {color: black}
In due righe hai risolto tutto e va anche su IE4...
MaRoK

 In due righe hai risolto tutto e va anche su IE4...
Si, magari mi bastasse... :-D
Claudio
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 perche' normalmente debbono essere grigi)
Ah, tu vuoi che, quando il mouse passa su un qualunque link del menu,
tutti gli altri, se già visitati, cambino colore?
Sticazzi :o)
Non so se è supportato il controllo sullo style del visited di una classe
mi arrendo di fronte all'abisso della mia ignoranza... :D
MaRoK

 spero di averti spiegato?
Cominciare col postare un po' di codice? :-)
Il minimo indispensabile of course.
Vediamo se riesco a capire: hai un menu in DHTML (suppongo lo stesso di 
cui si discuteva in ilpw?) che in condizione di "stasi", quando non 
viene attivato dell'utonto, deve avere sia il titolo del menu che le 
varie sottovoci grigie. E dev'essere sempre tutto grigio anche nel caso 
di pagine gia' visitate (a:link == a:visited). Giusto fin qua?
Poi l'utente fa il solletico ad una voce principale, con il mouse over 
vuoi che il testo diverti nero (a:hover).
E quel che non ti riesce di fare e' che lo stato HOVER si "propaghi" 
istantaneamente alle voci secondarie, cioe' che le secondarie diventino 
nere insieme alla principale, che tutto (princ e sec) rimanga nero 
finche' il mouse sta su una delle secondarie e che ridiventi tutto 
grigio quando il mouse va via.
Esatto?
Quel che segue funziona perfettamente:
<html>
<head>
<style type="text/css">
body {
   font-family : verdana ;
   font-size : 0.7em ;
   }
.normale {
   color : #666 ;
   background-color : #ffd ;
   }
.over {
   color : #000 ;
   background-color : #ddd ;
   font-weight : bold ;
   }
.normale a, .over a {
   font-style : italic ; 
   color : inherit ;
   }
a:hover {
   color : red;
   }
</style>
</head>
<body>
<div 
   class='normale' 
   onmouseover="this.className='over'" 
   onmouseout="this.className='normale'" >
      Principale 1 <br />
      &nbsp; &nbsp;<a href=''>Secondario 1 a</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 1 b</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 1 c</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 1 d</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 1 e</a> <br />
      &nbsp; &nbsp;<a href='''>Secondario 1 f</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 1 g</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 1 h</a>
</div>
<br />
 
<div 
   class='normale' 
   onmouseover="this.className='over'" 
   onmouseout="this.className='normale'" >
      Principale 2 <br />
      &nbsp; &nbsp;<a href=''>Secondario 2 a</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 2 b</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 2 c</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 2 d</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 2 e</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 2 f</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 2 g</a> <br />
      &nbsp; &nbsp;<a href=''>Secondario 2 h</a>
</div>
</body>
</html>
La bad news e' che IE (5 e 6) sembra fregarsene altamente di "inherit" 
per il solo "color" di "a", mentre tutti gli stili, com'e' lecito 
aspettarsi, li eredita.
Forse si puo' indagare ancora per risolvere tutto con i CSS, altrimenti 
possiamo vedere di trovare una soluzione con uno script magari solo per 
IE.
Non so se il comportamento corretto e' quello di IE (non ereditare il 
colore) o quello di Mozilla/Opera7 che invece ereditano tutto.
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

 Esatto?
Non esattamente. Io voglio che anche i link si dimentichino
dell'impostazione di a:visited {color: #999;} perche' senno'
- il titolo del menu mi diventa regolarmente nero ma
- i link gia' visitati mi restano grigi (a meno che non ci passi sopra
col mouse)
In pratica mi serve solo un sistema per reimpostare a:visited. Il resto
funziona gia' :-D
Tra l'altro ho comperato tempo fa un libro wrox su js ma mi sa che non
e' aggiornatissimo
Claudio

 e' aggiornatissimo
Wrox e' cmq una garanzia a priori per integrare basta anche una 
reference aggiornata.
In 
http://www.jsdir.com/red
 ci sono un po' di documenti Netscape 
