Newsgroup: it.comp.www.html
Titolo: Problemi di Width con IE6

Ciao a tutti,
Vengo subito al dunque:
Ho una pagina XHTML1.1 reoglarmente validata che ha più o meno questa
struttura:
<div id="corpo">
  <div id="colonna1" class="piccola">
  </div>
  <div id="colonna2" class="grande">
  </div>
</div>
lo stile è il seguente:
#corpo{
  width:510px;
  margin:0px;
  padding:0px;
  border:0px;
}
.piccola{
  width:116px;
  margin:0px;
  padding:1px;
  border:1px;
}
.grande{
  width:386px;
  margin:0px;
  padding:1px;
  border:1px;
}
con questa versione è tutto OK sia con opera 7.2 che con IE6, infatti
le due classi occupano perfettamente tutto il div contenitore e sono
attaccate.
I problemi nascono modificando margin:2px e di conseguenza diminuendo
il width di 4px di entrambe le classi.A questo punto opera mi mostra
quello che mi aspettavo di vedere e cioè i due box leggermente più
piccoli distanziati tra loro, mentre in IE6 lo spazio del div
contenitore non basta più per contenere entrambi i box che quindi non
sono più affiancati ma 1 sotto l'altro (eppure aumentando il margine
di due e diminuendo il width di 4 il totale dovrebbe essere lo
stesso....giusto??).
Entrambi i browser lavorano in modalità standard e il codice è stato
validato e non contiene errori (sia la pagina che il css).
Questa differenza di visualizzazione non riesco proprio a spiegarmela,
sto facendo una casino di prove ma non ne vengo fuori....questa pagina
mi sta larvizzando!!!
Grazie a tutti e ciao

Credo sia un problema simile a questo:
<div style="float: left;width: 30%;background: #cccccc;">menu left</div>
<div style="float: right;width: 70%;border: 1px solid black;">
<div style="background: red;float: left;width: 30%;">1</div>
<div style="background: aqua;float: left;width: 20%;">2</div>
<div style="background: green;float: left;width: 50%;">3</div>
</div>
Basta che provi a ridimensionare la finestra e vedrai che mentre la
ingrandisci o la rimpiccolisci, il layer verde a volte sta sulla stessa
linea degli altri (giustamente) a volte va a capo :)
-- 
:: Massimiliano Mattei :: Project Leader
:: EVA Group :: 
http://www.evagroup.net
:: Soluzioni extranet :: e-business :: corporate portal

 linea degli altri (giustamente) a volte va a capo :)
Ho l' impressione che quello delle percentuali sia più un problema di
arrotondamenti, infatti non conoscendo la dimensione del genitore non
è detto che il 20% sia esattamente 30px(ad esempio), ma potrebbe
essere 29,8.Quando i 3 box vengono arrotondati per eccesso magari la
somma è di uno o due pixel maggiore del contenitore e quindo l'ultimo
va sotto.Infatti se dai al contenitore la dimensione di 300px vedrai i
tre box affiancati, mentre quando la diminuisci a 299 (se ti fai i
conti delle percentuali la cifra dopo la virgola è sempre >=5, quindi
arotondata per eccesso) la somma dei tre diventa > 299 e quindi il
verde va sotto.Per lo meno explorer dovrebbe ragionare così(quel poco
che ho visto dalle prove che ho fatto), ho notato invece che opera nel
dubbio arrotonda sempre per difetto, infatti con il contenitore a 299
noterai un piccolo spazio bianco alla fine del verde.
Il mio problema è un pò diverso, infatti sembra che il simpatico IE6
conteggi bene la dimensione del div con il margin a 0 mentre
impostando il margin (e riducendo di conseguenza il width) si
dimentichi tutte le lezioni di matematica fatte alla scuole per
browser e incasini tutto.
Per ora ho risolto lasciando il margin a 0 e inserendo il box in
un'altro con il padding a 3px, l' effetto è lo stesso e funziona anche
su IE6, solo che ogni volta che devo mettere un box devo inserire due
div....Non è una soluzione che mi piace molto,se qualcuno trova di
meglio....
Oltretutto c'ho 'sta malattia che mi porta ad inca##armi un pochetto
quando quando non capisco le cose;) e non sarebbe male comprendere il
perchè di questo fenomeno (magari sto facendo qualche errore
grossolano che non vedo)
Ciao

Sicuro che non sia un problema di "Box Model" ?
Saluti.
Cekko

 Sicuro che non sia un problema di "Box Model" ?
Si, o almeno non č lo stesso(ben noto) di IE5, infatti se imposto i
due box a (marg+bor+pad+width+pad+bor+marg)
0+1+1+116+1+1+0 e 0+1+1+386+1+1+0 ottengo due Box di 120 e 390 pixel
che mi occupano esattamente tutti i 510 del contenitore e mi stanno in
una sola riga(il conteggio č esatto...).
Cambiando invece i due box a:
3+1+1+110+1+1+3 e 3+1+1+380+1+1+3
I due box si dispongono su due righe, come se i 510px del contenitore
non fossero piů sufficienti (poi il perchč č tutto da scoprire).
Conteggiando le dimensioni come il buon vecchio IE5 avremmo avuto un
box da 116 e uno da 386, quindi al limite non avrebbero occupato tutto
lo spazione del contenitore ma sarebbero stati comunque su una riga
sola.
In pratica tolgo 6 al centro e aggiungo 3 per parte e la somma non č
piů la stessa...DHO!!!(come direbbe il mio vecchio amicho homer)