Newsgroup: it.comp.lang.javascript
Titolo: Mistero <div> e <span>

Sono in questa situazione:
<div id="MainDiv">
    <div>
        Contenuto del div
    </div>
    <div>
        <select><option>........</select>
    </div>
    <div>
        Altro contenuto
    </div>
    <div>
        Altro contenuto
    </div>
</div>
ora, se un evento fa eseguire la seguente istruzione:
document.getElementById('MainDiv').style.display='none';
ed un altro evento:
document.getElementById('MainDiv').style.display='block';
capita che tutti i <div> successivi al <select> non riappaiono....
Se al posto del <select>, metto qualsiasi altro tag tutto funziona.
Tutto funziona anche nel caso in cui al posto dei <div> si utilizzino degli 
<span>
Qualcuno mi spiega questo mistero divino ??????
Ciauz,
HyP 

 
[cut]
Ho replicato esattamente la situazione che descrivi e non ci sono
problemi... testato con FF, IE, Opera.
-- 
Nando [?]
Apostolo della Prova

 Qualcuno mi spiega questo mistero divino ??????
prova a validare la pagina e magari scopri che c'è un tag non chiuso che
chissa' che casini fa...

 problemi... testato con FF, IE, Opera.
Ho semplificato la pagina: i problemi nascono dalla combinazione <table> e 
<select>.
I <div> riappaiono (ho dato un colore di background) ma i <table> successivi 
a quello contenente la <select> pare di no...
Allego una mini pagina html di test:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
" >
<head id="Head1">
<title>Pagina senza titolo</title>
        <script type ="text/javascript">
     layer4Collapsed=false;
    </script>
</head>
<body>
 <div id="Layer4" style="width: 314px; margin: 4px; border: #747474 1px 
solid; background-color:white;">
  <div id="innerLayer4">
          <div style="width:312px; height:19px; margin:1px;background-color: 
yellow;">
               <table style="position:relative; top:-3px;">
                    <tr>
                          <td>Select</td>
                          <td>
                           <select>
                            <option></option>
                            <option>Uno</option>
                            <option>Due</option>
                            <option>Tre</option>
                           </select>
                          </td>
                    </tr>
               </table>
          </div>
          <div style="width:312px; height:19px; 
margin:1px;background-color:gray;">
               <table style="position:relative; top:-3px;">
                    <tr>
                          <td>Contenuto</td>
                          <td>Contenuto</td>
                    </tr>
                </table>
          </div>
         <div style="width:312px; height:19px; 
margin:1px;background-color:yellow;">
             <table style="position:relative; top:-3px;">
                 <tr>
                  <td>Altro</td>
                 </tr>
             </table>
         </div>
  </div>
 </div>
<button style="position:absolute; top:20px; left:350px; width:100px" 
onclick="if (layer4Collapsed) {layer4Collapsed=false; 
document.getElementById('innerLayer4').style.display = 'block';} else 
{layer4Collapsed=true; document.getElementById('innerLayer4').style.display 
= 'none';}">Hide/Show</button>
</body>
</html>

 chissa' che casini fa...
Ho risposto al messaggio di Nando allegando un sorgente di esempio...
Non mi pare manchino tag.....
Ciauz,
HyP 

 <select>.
Problema solo con IE6, a quanto pare (FF e Opera sono ok). Deve essere
qualche bug ma non so quale; so solo che eliminando quel
"position:relative; top:-3px" dalle table, il problema sembra non
manifestarsi piů.


 manifestarsi piů.
Perché č appunto "relative"; ma "relative" a che cosa? Per far
contento IE6, o imposta uno dei DIV ad absolute, ad esempio, o
come hai giustamente fatto notare elimina il "relative".
Premesso il bug di cui sopra, ma in IE6 non si contano neppure
le anomalie che includono i termini "select" e "CSS".
-- 
~ Non esistono donne brutte. Dipende solo da quanta vodka bevi.
(proverbio russo)

 le anomalie che includono i termini "select" e "CSS".
E io ringrazio di non essere un professionista del settore, così non mi
devo avvelenare il fegato!


 devo avvelenare il fegato!
.. Se, se.
Sei qui, e questo significa che se non te lo "avveleni" per lavoro;
lo stai facendo per diletto. :)
-- 
~ "Io rispetto molto la stupidità umana.
E' la sola cosa che mi dia un'idea dell'eternità."
(Voltaire)

 lo stai facendo per diletto. :)
Mi stai dando del masochista!


 Mi stai dando del masochista!
E mica è una novità.. Ti ho già dato del masochista, giusto giusto al
rientro dalle ferie :P
-- 
~ "Se un uomo non è disposto a lottare per le sue idee, o le sue idee
non valgono nulla o non vale niente lui."
(Ezra Pound)

 manifestarsi piů.
Togliendo il relative funziona, ma se noti, il contenuto dei <div> si sposta 
piů in basso....
Come lo tiro su quindi ? 

 Come lo tiro su quindi ?
Togliendo il posizionamento da <table> e spostandolo in <tr 
style="position:relative; top:-3px;"> pare essersi risolto il problema...
Ciauz,
HyP 

> Come lo tiro su quindi ?
Ti conviene studiarti un po' di CSS; come ha detto Nando:
	"quel position:relative puzzava"
Cose di quel tipo così come le hai impostate te normalmente non si
fanno. Se si fanno è per metter qualche pezza laddove si è scritto
un layout poco buono che non viene come si desiderava.
Ma al limite si dovrebbe cercare di capire dov'è che sta l'errore,
non aggiungere altro CSS per aggirarlo.
Il tutto, IMVHO.
-- 
~ Se il destino è contro di noi, peggio per lui!

 non aggiungere altro CSS per aggirarlo.
Bisogna fare tutto e subito:P
Ciauz,
HyP

 Bisogna fare tutto e subito:P
Come si suol dire.. "presto e bene, non vanno insieme" :P
-- 
~ Non ci sono certezze, solo ragionevoli probabilità.
(W. Howe)

 spostare di 3px in alto quel dato elemento.
Beh solo perchè il <select> o anche un <input> vengono troppo in basso 
(decentrati) rispetto al <div>
Idee?

 rientro dalle ferie :P
Inizio a crederre che sia vero.


 Idee?
Non potendo vedere il "problema", torno a consigliarti di:
- studiarti un po' di CSS.
- tendere a evitare le table per impostare il layout.
