Newsgroup: it.comp.lang.javascript
Titolo: Background colorato voce Highlight menu select

var MenuValue = Obj('Parola').options[Obj('Parola').selectedIndex].value;
var MenuText = Obj('Parola').options[Obj('Parola').selectedIndex].text;
Ho un menu select, e vorrei colorare diciamo do Rosso, il background dello
stesso (intendo la voce selezionata) ad una data azione?
Come accedo alla prorietą per colorarmi la riga??
document.getElementById('Parola').???...quella selezionata?
BYE Alen

 stesso (intendo la voce selezionata) ad una data azione?
Non puoi.
In IE men che meno, nei browser gecko idem (per colpa di un !important nel
forms.css da quanto mi e' dato capire).. Altrimenti sarebbe bastato un
option:checked{
	background:red!important;
}
(su select multiple)
Ma magari in altri browser w3c compliant funziona.
-- 
ZER0://coder.gfxer.web-designer/
~ Se potete leggere questo, la mia donna e' caduta.
(Letta sul retro di una maglietta di un motociclista)

 forms.css da quanto mi e' dato capire).. Altrimenti sarebbe bastato un
dove l'hai trovata questa?



In che senso?
-- 
ZER0://coder.gfxer.web-designer/
~ "Lo dice il buon senso, ma il buon senso non e' uno standard".
(Jeffrey Zeldman)
on air ~ "Maki Kimura - Beyond The Bounds"

>dove l'hai trovata questa?
non ho capito a che form.css ti stai riferendo.

 non ho capito a che form.css ti stai riferendo.
Al file forms.css che definisce l'aspetto grafico delle form su gecko.
-- 
ZER0://coder.gfxer.web-designer/
~ "When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)


 Al file forms.css che definisce l'aspetto grafico delle form su gecko.
ehm appunto...dove l'hai trovata questa info...ovvero parli di 
comportamento predefinito dei css oppure hai guardato il codice sorgete 
di firefox/mozilla

 di firefox/mozilla
La seconda che hai detto.


In data Mon, 22 Nov 2004 17:52:56 +0100, ZER0 ha scritto:
[CUT]
Questa sembra stranamente funzionare:
http://www.criosoftware.it/OptionSelectedRed.htm
Però non capisco il perché (mi è saltata fuori giocandoci un po')...
praticamente se setto il background-color dell'intera select in realtà
colora solo il valore attivo; inoltre devo farlo onload (messo come style
nella option non funziona).
Mozilla 1.7.3, IE6sp1.
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 nella option non funziona).
Funziona anche messo come stile nella option; probabilmente hai un po'
confuso le cose, facendo i test unicamente con una select dropdown, gecko
ti visualizza come background quello della select una volta che un elemento
e' stato selezionato (e quindi anche nella prima visualizzazione.. e da
qui, suppongo, il tuo fraintendimento in merito sul "mi colora solo il
valore attivo"); IE invece ti visualizza il background dell'elemento.
Se "estendi" la select come listbox, magari a scelta multipla (con un size
di almeno una decina di elementi) credo ti sara' tutto piu' chiaro.
E magari cambia la funzione in questo modo, cosi' vedra un po' cosa succede
alle option:
function colora(sender) { 
	for(var x=0;x<sender.length;x++)
		with ( sender.options[x] )
			style.backgroundColor=selected?"red":"white";
}
Selezionane magari qualcuna sparsa e poi vai su un elemento e tieni premuto
il tasto del mouse senza rilasciarlo subito: in questo modo "cambi" la
selezione corrente, ma non scateni ancora l'evento onchange (e con esso
l'esecuzione della funzione).
-- 
ZER0://coder.gfxer.web-designer/
~ Plagiarism is copying from one source;
research is copying from two or more
(Wilson Mizner)
on air ~ "Goo Goo Dolls - Iris"

 }
Inserita, sempre come sopra: colora la option ma la select (con tendina
chiusa) resta bianca.
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 chiusa) resta bianca.
Eh, ma non ci siamo capiti.. Il testo completo che ho scritto era:
<cite>
Se "estendi" la select come listbox, magari a scelta multipla (con un size
di almeno una decina di elementi) credo ti sara' tutto piu' chiaro.
E magari cambia la funzione in questo modo, cosi' vedra un po' cosa succede
alle option:
function colora(sender) { 
	for(var x=0;x<sender.length;x++)
		with ( sender.options[x] )
			style.backgroundColor=selected?"red":"white";
}
Selezionane magari qualcuna sparsa e poi vai su un elemento e tieni premuto
il tasto del mouse senza rilasciarlo subito: in questo modo "cambi" la
selezione corrente, ma non scateni ancora l'evento onchange (e con esso
l'esecuzione della funzione).
</cite>
I passaggi erano in sequenza, tu hai estrapolato solo il secondo, dal
contesto. :)
-- 
ZER0://coder.gfxer.web-designer/
~ Ci siamo fatti una scopata cosi' eccezionale che anche i vicini hanno
fumato una sigaretta.
on air ~ "Do As Infinity - fukai mori"

In data Tue, 23 Nov 2004 10:54:13 +0100, ZER0 ha scritto:
[CUT]
Ok, ho capito.
Interpretavo male la tua risposta "non puoi" mentre a me risultava
fattibile (dalla domanda fatta io intendevo *non* a select multiple che non
ho mai avuto il bisogno di usarle e manco so cosa siano anche se posso
intuirlo).
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 intuirlo).
Beh, anche se non e' una select multipla, ma una select listbox (a scelta
singola) invece che una select dropdown, il problema e' il medesimo; nel
senso che cambi sempre il background dell'option, e non cambi la selezione
dell'option.
La soluzione pulita al problema sarebbe stata ridefinire l'option:checked,
ma questo non e' fattibile neppure in gecko per il problema che ho esposto.
Ovviamente se si tratta di colorare non l'elemento selezionato in una
dropdown, si puo' semplicemente ridefinire il background dell'option (su
IE) e quello della select (su Gecko); dato che la dropdown e' l'unica
select che non mantiene la selezione, la tiene solo sul focus (in IE, in
gecko neppure in quel caso) e quindi si avrebbe una sovrapposizione dei
colori solo nel momento in cui ha il focus (in IE), o si passa sopra
l'elemento a tendina aperta (IE/Gecko). Ma non c'e' nulla di anomalo in
questo :)
-- 
ZER0://coder.gfxer.web-designer/
~ I feel like I'm diagonally parked in a parallel universe.
on air ~ "My Chemical Romance - I'm Not Okay (I Promise)"

 ma questo non e' fattibile neppure in gecko per il problema che ho esposto.
Quindi deduco che in presenza di 2 !important vale il primo? Mi aspettavo
il contrario (ossia che mettendo option:checked {blabla !important}
vincesse l'ultimo)...
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

 vincesse l'ultimo)...
No, il punto e' un altro. Gli !important si trovano in un foglio di stile
che ha la priorita' su qualsiasi altro foglio di stile "custom". Quindi, a
parita' di !important, "vince" il forms.css.
-- 
ZER0://coder.gfxer.web-designer/
~ "Nella vita uno raccoglie ciò che semina.
Ma per seminare bisogna chinarsi, e prenderlo nel culo un attimo."
on air ~ "Sahara Hotnights - Hot Night Crash"

 parita' di !important, "vince" il forms.css.
Ah, proprio via codice lo fanno? Anche questo è bizzarro...se è vero (non
ho controllato) che a parità vince l'ultimo !important avrebbero potuto
lasciarlo sovrascrivibile...
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 avrebbero potuto lasciarlo sovrascrivibile...
Avrebbero semplicemente dovuto eliminare l' !important dalla regola nel
forms.css.. e va beh.
-- 
ZER0://coder.gfxer.web-designer/
~ "Lo dice il buon senso, ma il buon senso non e' uno standard".
(Jeffrey Zeldman)
on air ~ "Sahara Hotnights - Hot Night Crash"

 forms.css.. e va beh.
Sě, ma se volevano indicare che era importante avrebbero _anche_ potuto
semplicemente tenere il forms.css come css *di default* e non che il suo
!important risulti piů importante di un altro !important settato dallo
sviluppatore.
-- 
"e mai che mi sia venuto in mente
 di essere piů ubriaco di voi
 di essere molto piů ubriaco di voi"
									  F.D.A.

 !important settato dallo sviluppatore.
Ma e' cosi' che funzionano i CSS; si chiamano cosi' anche per questo :)
-- 
ZER0://coder.gfxer.web-designer/
~ Ci siamo fatti una scopata cosi' eccezionale che anche i vicini hanno
fumato una sigaretta.
on air ~ "YUKI - Home Sweet Home"

 On Tue, 23 Nov 2004 12:25:26 +0100, Cristiano Larghi wrote:
Ciao Raga,
mi sono un po' perso nelle vostre repliche, ma in definitiva mi sembra di
aver capito che non è possibile colorare l'elemento in HighLight dell'elenco
(quindi con + scelte visualizzabili).
Ho capito e sono riuscito per il background e i testi ma quel blu, mi sembra
di sitema, mi confermate?

 di sitema, mi confermate?
Confermo.
Lo sarebbe nei browser gecko se non ci fosse un settaggio nel forms.css che
ne impedisce la "sovrascrittura".
-- 
ZER0://coder.gfxer.web-designer/
~ "Massi' che e' uno standard, e' uno standard proprietario."
(Gio')