Newsgroup: it.comp.lang.javascript
Titolo: caricare css diversi in base alla risoluzione dello schermo

Ciao a tutti!
Ho trovato spulciando nel ng il seguente script, che dovrebe fare al caso
mio (ponendo che si abbiano 3 css diversi, 800.cs; 1024.css; 1152.css):
<script language="JavaScript" type="text/javascript">
if (screen.width>=1152)
{document.write('<link rel="stylesheet" href="'+1152+'.css" type="text/css">
')}
else if (screen.width==1024)
{document.write('<link rel="stylesheet" href="'+1024+'.css" type="text/css">
')}
else
{document.write('<link rel="stylesheet" href="'+800+'.css" type="text/css">
')}
</script>
...solo che a me non funziona affatto! Qualcuno può spiegarmi dov'è
l'errore, o qual'è la sintassi corretta?
Grazie a tutti!
Vittorio

 l'errore, o qual'č la sintassi corretta?
Non č il massimo come sistema, in ogni caso... hai messo dei + ... in piů! :D
(e anche un uguale al posto di un maggiore o uguale)
Ecco lo script corretto:
<script type="text/javascript">
<!--
if (screen.width>=1152)
{document.write('<link rel="stylesheet" href="1152.css" type="text/css">')}
else if (screen.width>=1024)
{document.write('<link rel="stylesheet" href="1024.css" type="text/css">')}
else
{document.write('<link rel="stylesheet" href="800.css" type="text/css">')}
-->
</script>
MaRoK

> Non è il massimo come sistema, in ogni caso... hai messo dei + ... in più!
:D
Ora funziona perfettamente, grazie mille! (anche per la tempestività!)
Ma come mai dici che non è il massimo? Dovendo fare (per forza, trattandosi
di un sito con i frames) diverse versioni delle pagine in base alla
risoluzione quello script mi eviterebbe un bel pò di lavoro, soprattutto in
fase di aggiornamento dei contenuti (caricare due file ogni volta che
aggiorni una pagina...)!
Tu che suggerisci? A me non è venuto in mente nulla di meglio...
Cmq grazie ancora!
Vittorio

 aggiorni una pagina...)!
Be' sì, ti devo dare atto che creare tre css diversi è indubbiamente
molto meglio di creare tre html diversi: almeno separi la forma dai contenuti.
- Di solito cmq credo che chi cambia il codice html in base alla risoluzione,
se non è completamente masochista, se lo faccia scrivere in automatico dal server...
difficile immaginare qualcuno che si metta lì ad aggiornarsi n volte il sito a mano...
per quanto ne abbia viste tante finora... :o)) -
Tuttavia suddividere gli utenti in fasce "rigide" (1024, 800 ecc...)
a mio avviso non è in ogni caso il metodo migliore, perché al mondo
non esistono solo tre dimensioni della finestra ma infinite,
e non è nemmeno detto che quelle che hai considerato tu siano le più diffuse.
Ad es. raramente io navigo con la finestra a tutto schermo,
dunque, sebbene io usi uno screen.width di 1024 e venga quindi indirizzato
a 1024.css, la mia finestra non sarà larga 1024 pixels, ma circa 800
(e se per caso ti viene l'idea di allargarmela con javascript mi incazzo
come una bestia! :D).
Dunque se il tuo scopo è quello di adattare il layout del sito alla finestra
ti converrebbe forse cambiare strategia, usando ad es. misure in percentuale
anziché assolute per i frames e/o tabelle e/o div,
adattandole automaticamente alla finestra, qualunque siano le sue dimensioni,
e in grado di seguire un suo eventuale successivo ridimensionamento.
Insomma, io cercherei di creare qualcosa di più "fluido"!
MaRoK