Newsgroup: it.comp.www.html
Titolo: IE6 e problema con (not)CascadingStyleSheets

Un saluto a tutti.
Ho un dubbio che mi perplime parecchio.
Ho creato uno stile per una applicazione web che sto sviluppando.
Nel file CSS che definisce tale stile, ho messo una dichiarazione del tipo
#top {
   background: url('logo.png') #c07077 left no-repeat;
   padding-left: 390px;
}
e nella pagina una div
<div class="top">Testo della Div</div>
Fin qui tutto bene, l'immagine compare a sinistra e il testo alla destra 
dell'immagine.
Il problema si verifica (solo con IE) quando nell'html provo a cambiare 
la div con questa dichiarazione
<div class="top" style="background: url('altrologo.png') #c07077 left 
no-repeat;">Testo della Div</div>
Guardano il sito con un browser normale (es FF), la dichiarazione di 
"background" nell'attributo style sostituisce (come mi sembra anche 
logico) quella del CSS (non è forse questo il significato di *Cascade* 
Style Sheet? :-) ).
Con IE6, invece, mi ritrovo con entrambe le immagini sovrapposte.
Finora l'unica soluzione che ho trovato è stata quella di non dichiarare 
l'immagine nel CSS, ma in base ad una variabile di configurazione, 
generare la div sempre con lo stile e sempre con il nome dell'immagine 
da mettere. Funziona, ma non mi piace.
Esiste forse, che voi sappiate, una soluzione (un workaround, o altro) 
che mi permetta di utilizzare le definizioni del CSS anche con IE?
<premessa>
Non voglio fare polemiche
</premessa>
Trattandosi di un sito pubblico, purtroppo, non posso permettermi di 
dire "Al diavolo IE, utilizzate FF" perché molta gente continua ad 
utilizzare il browser di casa Redmond, e devo poter scegliere l'immagine 
a seconda di una variabile di configurazione del sito (per quello 
utilizzo PHP, ma il problema è sul codice xHTML+CSS da generare).
Rigrazio anticipatamente chiunque mi possa dare una dritta.
PSK

 dell'immagine.
Tutto bene mica tanto. Come fa a funzionare se la sintassi
#top indica un attributo id="top" invece che
un attributo class="top"?
-- 
deelan
http://passiomatic.com/
http://www.deelan.com/

 
Hai ragione. Ho sbagliato a tascrivere. :-p
Si tratta di un <div id="top" ecc. ecc.>
PSK

 Si tratta di un <div id="top" ecc. ecc.>
Rimane il fatto che tu stai chiedendo al browser di applicare 2 stili e
non 1
-- 
Lawrence - 
http://www.oluyede.org/blog
"Nothing is more dangerous than an idea
if it's the only one you have" - E. A. Chartier




 
Infatti, e si tratta di una cosa più che lecita.
Non sto ridefinendo lo stesso stile, infatti il sistema applica gli 
stili in sequenza e per ciascuno stile sostituisce i valori definiti. 
Tutti gli altri vengono ereditati dallo stile precedente o dallo stile 
finale dell'elemento logico che contiene l'elemento in questione.
Difatti i validatori non restituiscono alcun warning o errore, e Firefox 
visualizza solamente la seconda immagine.
É Internet explorer che applica 2 differenti background allo stesso 
elemento (cosa già strana di per sè, in quanto un elemento ha un 
background solo, non 2 sovrapposti). Mi sarei aspettato, al massimo, di 
vedere la definizione dello stile per id sovrascrivere quella 
dell'attributo style (per il fatto che in questo caso applicherebbe gli 
stili con un ordine inverso rispetto a FF), non che li applichi entrambi 
di fatto duplicando informazioni.
Posso provare anche con Opera per avere un ulteriore punto di verifica.
In ogni caso, alla fine ho dovuto fare in modo di definire nello stile 
tutto tranne il background e in base ad una variabile creare la div con 
l'immagine di default o quella richiesta (fa schifo come soluzione, ma 
purtroppo sembra non si possa fare altro).
Grazie comunque.
LP

Hai provato a inserire nella pagina che ti interessa la definizione dello
stesso stile che hai nel css ma con l'altro logo?
ovvero nell'head metti
<style type="text/css">
<!--
#top {
background: url('altrologo.png')  #c07077 left no-repeat;
padding-left: 390px;
}
-->
</style>
e poi nel tag lasci semplicemente <div id="top">Testo della Div</div>
Quel che scrivi nella pagina dovrebbe sovrascrivere quel che hai definito
nel css esterno.
Ciao
-- 
Nadia
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
non rompere le scatole, aprile!
www.maipiusenza.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 Ciao
Ci provo.
Effettivamente così sembra più elegante.
Grazie
LP
-- 

 
LOL :-D
Questa me la stampo e me la tengo stretta
Grazie
LP
-- 
May the Schwartz be with you.