Newsgroup: it.comp.www.html
Titolo: CSS e Netscape 4.xx

Date le ampie lacune di Netscape 4.xx in termini di CSS, mi piacerebbe
sapere che soluzione avete adottato per fare visualizzare i vostri
siti su quel browser:
a) avete creato un file .css per netscape da fare usare dopo una
verifica del browser usato tramite javascript (o altro);
b) avete deciso di ignorare del tutto Netscape 4.xx.
Grazie delle vostre risposte.
Ciao

 b) avete deciso di ignorare del tutto Netscape 4.xx.
c) un CSS di base per i browser obsoleti e uno avanzato per i browser 
piu' recenti caricato con @import (questo trucco e' specifico per 
Netscape, di fatto l'unico tra gli obsoleti che viene ancora tenuto in 
considerazione).


la seconda che hai detto. il browser in question merita l'oblio.
bye


c) ho commentato le righe per Netscape4.x, usando la sintassi !important
MaRoK

 c) ho commentato le righe per Netscape4.x, usando la sintassi !important
Allora non hai commentato nessuna riga.

 Allora non hai commentato nessuna riga.
Netscape4.x, essendo bacato, ignora le righe dei css che contengono "!
important" (andando a capo dopo il !)
Dunque di fatto per lui !important "commenta" le righe di un css.
Perciò io lo uso per correggere le sue porcherie immonde:
ad esempio, se il css e lo sfondo sono fuori della directory,
Netscape4.x (tra l'altro) considera il percorso relativo all'htm invece che al css.
Perciò, per fargli trovare il file, o si usa un percorso assoluto
(cosa che preferisco evitare), oppure:
body           {background: black url("../../../sfondo.jpg")}
body           {background-image: url("sfondo.jpg") !
important}
netscape4 leggerà solo la prima riga
tutti gli altri browser normali le leggeranno entrambe, dando la priorità alla seconda.
questo libera il webmaster dal creare due css esterni diversi,
con le inevitabili seccature che questo comporta.
Altri esempi possono essere i bordi delle immagini, gli sfondi delle tabelle, ecc...
MaRoK

 Dunque di fatto per lui !important "commenta" le righe di un css.
Non ci si puo' inventare definizioni laddove ne esistono altre piu' 
precise, perche' poi magari chi legge si mette strane idee in testa.
I CSS si commentano con /* ... */ e basta, e un commento vale per tutti 
i browser, non esistono commenti condizionali.
Con !important si puo' costringere alcuni browser (a causa di una errata 
interpretazione della sintassi) ad ignorare la proprieta' a cui e' 
applicato; questo non fa di !important un commento.

 applicato; questo non fa di !important un commento.
Temo di non aver capito...
"commentare" una riga di codice non vuol dire "farla ignorare" al browser?
Se sì, che differenza c'è tra "commentare" una riga solo per Netscape4.x
o "far ignorare" una riga solo a Netscape4.x?
Dici che non esistono "commenti condizionali"
e che un commento dev'essere tale su tutti i browser,
ma ovviamente non potrà mai essere così,
perché, come è noto, non esiste uno standard comune a tutti i browser.
Ad esempio "<!--" e "-->" se posti all'interno di un css
per un browser obsoleto sono commenti (infatti ignora il css),
mentre non sono commenti per un browser aggiornato (che li ignora e legge il css).
Infatti li si usa appunto per questo, altrimenti il browser obsoleto
stamperebbe a video un sacco di porcheria.
Per te si tratta o no di commenti?
MaRoK

 Per te si tratta o no di commenti?
No (e per inciso, non li uso). Le specifiche CSS indicano chiaramente 
che i commenti iniziano con /* e finiscono con */. Inoltre le specifiche 
indicano altrettanto chiaramente che i commenti SGML sono si' permessi 
in certi casi ma che NON delimitano un commento.

 No (e per inciso, non li uso).
Be', se il css è interno al codice, non usando le stringhe "<!--" e "-->"
un utente di IE3 (win95) o Netscape3 vedrà stampato a video tutto il contenuto.
Se sei sicuro che nel tuo target di visitatori non c'è nessuno che usa browser dell'anteguerra
puoi tranquillamente ometterle, perché dalla versione 4 in poi i principali browser leggono i css.
Ma volendo mantenere un livello accettabile di retrocompatibilità
(cioè volendo dare un contenuto leggibile) può essere consigliabile inserirle.
MaRoK

 browser dell'anteguerra
Non e' una questione di target, e' che quei due da un paio d'anni se non 
di piu' non li vedo nei log dei siti su cui lavoro.

 di piu' non li vedo nei log dei siti su cui lavoro.
Sei sicuro che rimangano nei log?
I servizi di statistiche (shinystat, bravenet e compagnia bella) non li rilevano
(anzi, netscape3 si pianta del tutto quando incontra quegli script),
ma magari se accedi direttamente ai log del tuo server riesci a vederli.
Cmq... non vedo l'ora di non vedere per un paio d'anni nei log
anche netscape4.x! :o)
MaRoK

 Sei sicuro che rimangano nei log?
Di solito non sfugge niente all'"access_log" di Apache :)

interpretazione della sintassi da parte del browser.
Il problema e` che !important ha un significato ben preciso nelle 
specifiche CSS: utilizzarlo nel modo che proponi tu significa 
stravolgere questo significato e introdurre l'ennesima 
mal-interpretazione delle specifiche.
Molto ma molto meglio usare il trucco dell'@import.
-- 
A risentirci
\  Davide G. Borin
\\ !!Scudo anti-spam attivo!! Togliere le x e "eliminami" dall'indirizzo
\\\_____________________________________________________________________

 Molto ma molto meglio usare il trucco dell'@import.
Be', anche @import sfrutta un baco di Netscape4! :o)
Cmq... l' @import è una soluzione efficace,
ma costringe ad usare due file esterni differenti.
L'inconveniente è che, per adattare un intero sito a Netscape4,
dovresti andare a modificare ogni file html che importa il tuo foglio di stile esterno
(dicendogli di importarne un altro)
quindi si tratta di un intervento "pesante".
Invece la mia soluzione consente di lasciare invariati tutti i file htm,
modificando solo il foglio di stile esterno a cui puntano.
Ovvero: con una sola modifica ad un solo file adatti un intero sito a Netscape4
(solo per quanto riguarda i fogli di stile, ovviamente! :o))
MaRoK

Uno i problemi se li risolve come crede, sfruttando bachi o con altri espedienti.
Certo, essere backward-compatible pur precludere l'aderenza agli standard. 
Ma lo standard h standard. E se non siamo noi i primi a seguirlo, addio evoluzione.
Crista
Messaggio spedito dal sito Risorse.net
La comunita' virtuale di Web masters e Web designers
http://www.risorse.net

 Ma lo standard h standard. E se non siamo noi i primi a seguirlo, addio evoluzione.
Questione di scelte.
Io antepongo robustezza e compatibilità all'aderenza allo standard,
ma il mondo è bello perché è vario.
MaRoK

 mondo è bello perché è vario.
Senza uno standard di riferimento come fai a garantire la compatibilità?
Usare "trucchi" è la cosa meno "robusta e compatibile" che si possa fare,
perchè non sai quali effetti collaterali potrebbero causare in casi che
non hai considerato o in futuro.

 non hai considerato o in futuro.
Non potrai sapere mai quali effetti avrà il tuo codice su un browser
se non lo conosci o non l'hai provato,
nemmeno creando una pagina aderente allo standard al 100%.
MaRoK