Newsgroup: it.comp.lang.javascript
Titolo: problema con javascript css e dimensione dei div





Salve a tutti ... sto lavorando su di un sito per 
il quel mi si è stato richiesto che la parte che contiene un testo adatti la sua 
dimensione a tutta l'area della oagina sulla quale viene 
visualizzata.


 


Ho provato semplicemente a mettere un 100% nella 
tabella ma non ottengo un buon risultato. In più devo rendere srollabile solo 
quella parte e non tutta la pagina.


 


Soluzione ho inserito un DIV con le sue varie 
proprietà definite in un css (css/style.css) e vorrei che ognivolta che cambio 
la grandezza della pagina (sia per risoluzione diversa che per "pagina a tutto 
schermo" o aperta "normalmente") mi si aggiorni la dimensione di questo 
DIV.


 


Ho scritto questo codice ...


<script language="JavaScript" 
type="text/JavaScript">
<!--


 


ok = (document.styleSheet) ? 1 : 
0;


 


IE = ((ind1 = 
navigator.appVersion.indexOf("MSIE")) > -1) ? 1 : 0;
IE4 = (IE && 
document.all) ? 1:0;


 


NN = 
(navigator.appName.indexOf("Netscape")>-1) ? 1 : 0;
NN4 = (NN && 
document.layers) ? 1 : 0;
NN6 = (NN && document.getElementById) ? 
1:0;


 


if(ok) {
  if(IE4) stile = 
document.styleSheet[0].rules
  if(NN6) stile = 
document.styleSheet[0].cssRules 
}


 


function 
divDimension(size){
 var 
std = 100;
 if(ok) {


var size = pageDim - 
std;
 stile[0].stylesheet.height = size + 
'px';
 }
 
 else
  alert("l'oggetto 
styleSheets\nNON\nè supportato")
}


 


La parte sopra dovrebbe modificarmi il foglio di 
stile (non lo fa :( )


La parte seguente ... funziona e calcola una sola 
volta (aimè) la dimensione della pagina


 


function ClientObject() {
var agt 
= navigator.userAgent.toLowerCase();
var is_major = 
parseInt(navigator.appVersion);
var is_minor = 
parseFloat(navigator.appVersion);


 


this.ns = ((agt.indexOf('mozilla')!= 
-1) && (agt.indexOf('spoofer') == -1)
&& 
(agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == 
-1)
&& (agt.indexOf('webtv') == -1) && 
(agt.indexOf('hotjava') == -1));
this.ns4 = (this.ns && (is_major == 
4));
this.ns4up = (this.ns && (is_major >= 4));
this.ns6 = 
(this.ns && (is_major == 5));


 


this.ie
 = ((agt.indexOf('msie') != 
-1) && (agt.indexOf('opera') == -1));
this.ie4 = (
this.ie
 && 
(is_major == 4) && (agt.indexOf('msie 4') != -1) );
this.ie4up = 
(
this.ie
 && (is_major >= 4));
this.ie5 = (
this.ie
 && 
(is_major == 4) && (agt.indexOf('msie 5.0') != -1) );
this.ie5up = 
(
this.ie
 && !this.ie3 && !this.ie4);
this.ie6 = (
this.ie
 
&& (is_major == 4) && (agt.indexOf('msie 6.') != -1) 
);


 


this.opera = (agt.indexOf('opera') != 
-1);
this.opera4 = (agt.indexOf('opera 4') != -1 || agt.indexOf('opera/4') != 
-1);
this.opera5 = (agt.indexOf('opera 5') != -1 || agt.indexOf('opera/5') != 
-1);
this.opera5up = (this.opera && !this.opera4);


 


this.webtv = (agt.indexOf('webtv') != 
-1);
}


 


var is = new 
ClientObject();


 


function pageDim() {
if (is.ie4up) 
{
return (document.body.scrollHeight > document.body.clientHeight) ? 

document.body.scrollHeight : document.body.clientHeight;
} else if 
(is.ns4 || is.ns6) {
return (document.height > innerHeight) ? 

document.height : innerHeight;
} else if (is.opera5up) {
return 
(document.body.scrollHeight > innerHeight) ? 
document.body.scrollHeight : 
innerHeight;
}
}


 


Sapreste dirmi il perchè questo script non 
funziona?


Grazie


Francesco


 



"hgkf" <gkd...@gdfsg.gdf> ha scritto nel messaggio
news:Itghc.81064$hc5.3...@news3.tin.it...
Salve a tutti ... sto lavorando su di un sito per il quel mi si è stato
richiesto che la parte che contiene un testo adatti la sua dimensione a
tutta l'area della oagina sulla quale viene visualizzata.
Ho provato semplicemente a mettere un 100% nella tabella ma non ottengo un
buon risultato. In più devo rendere srollabile solo quella parte e non tutta
la pagina.
Soluzione ho inserito un DIV con le sue varie proprietà definite in un css
(css/style.css) e vorrei che ognivolta che cambio la grandezza della pagina
(sia per risoluzione diversa che per "pagina a tutto schermo" o aperta
"normalmente") mi si aggiorni la dimensione di questo DIV.
[CUT]
La possibilità di manipolare i fogli di stile tramite javascript è quasi per
nulla cross-browser, vedi per esempio (è il primo che mi è capitato)
http://www.quirksmode.org/dom/changess.html
quindi cambierei approccio.
Non ho studiato tutto il tuo script ma cmq fin dove ho letto ho notato
qualche cosa che non mi convince:
l'array di fogli stile è document.styleSheets con la s
uso della variabile stile: tu la crei "come copia" dell'array di regole
contenute in stylesheets[0], se modifichi la copia non modifichi l'originale
cioè le regole del foglio
sei sicuro della sintassi (css)rules[n].stylesheet.height? non sarà forse
(css)rules[n].height= ? (vedi sempre il link..)
Oltre non sono andato
Ciao
yanez

[CUT]
Wow, ma si puo' scrivere anche in html nei NG?
Tra l'altro non sarebbe male cambiare colori e cose del genere...

Tra l'altro non sarebbe male cambiare colori e cose del genere...
Evita l'html. 
http://www.news.nic.it/doc/metamanifesto.html
'bye

 ha scritto nel
messaggio news:vrad80lcc5ldsm1lm...@4ax.com...
