Newsgroup: it.comp.lang.javascript
Titolo: [OT] Help con un layout

Ecco, torno ed e' subito OT :-D
E' che siete bravi, veloci e sopratutto...veloci, appunto. In attesa
che chiunque abbia promosso la campagna di rimozione del moderatore
di .html mi faccia sapere come e' andata :-)
Come posso far dipendere la posizione di un div da quella di un altro
div con position:absolute?
Insomma, ci sono due div. Il primo e' in posizione absolute con le sue
brave coordinate. Voglio che il secondo abbia come X la X di dove
finisce il primo.
Si puo' fare?
Grazie!

 finisce il primo.
Devi definire absolute anche quello.
O metterli dentro un altro contenitore fuori dal flusso di pagina.
In generale e` un po' in casino :)
Ma ti conviene postare nel ng giusto.
Bye.

 div con position:absolute?
uhm ... così a naso via css non puoi, perché il div con absolute "esce" dal
flusso (smentite sono ben accette)
Potresti leggere la posizione dell'oggetto e la sua lunghezza e
posizionarti via javascript; spunti:
 
http://www.criosoftware.it/default10.aspx
 
http://www.criosoftware.it/default26.aspx
-- 
"e mai che mi sia venuto in mente
 di essere più ubriaco di voi
 di essere molto più ubriaco di voi"
									  F.D.A.

 div con position:absolute?
dipende... le dimensioni del primo div sono fisse o variabili?
con un posizionamento absolute togli l'elemento dal flusso della
pagina (come giustamente diceva Cristiano Larghi) quindi non puoi far
seguire un altro div a meno che non conosci a priori le dimensioni del
primo div.
in alternativa puoi usare il primo div come containere dentro metterci
due div.
Se hai delle pagine di esempio o spieghi cosa vuoi fare è meglio,
perchè molto probabilmente si possono trovare soluzioni alternative
che creino un effetto similare ma che non dipendano troppo da un
posizionamento assoluto. Spesso si tende ad utilizzare l'absolute
perchè il float se non usato millemitricamente è una sega... oppure
semplicemente perchè risultava più semplice che non star li a gestire
margini e padding con relative differenze fra IE e resto del mondo.
comunque la proposta mia era vedere se puoi fare una cosa del genere,
dove "container" è absolute e i due interni sono 'normali'
<div id="container">
   <div> </div>
   <div> </div>
</div>

 </div>
Sono d'accordo e quindi quoto, pero' rimetterei l'OT nel subject

 margini e padding con relative differenze fra IE e resto del mondo.
[mod polemico on]
Quello che voglio fare e' semplice, voglio poter realizzare qualsiasi
dei millemila layout comunissimi fatti da da dieci anni a questa parte
da milioni di web designer con le tabelle e che con i css DEVE ESSERE
POSSIBILE FARE, perche' altrimenti comincio a sperare che chi li ha
progettati venga spedito in Iraq a farsi torturare nel modo piu'
doloroso possibile.
[mod polemico off]
Vorrei solo realizzare una cosa semplice semplice: due colonne
affiancate, alte uguale a quella delle due piu' alta.

 affiancate, alte uguale a quella delle due piu' alta.
non fattibile via css in modo cross-browser attualmente.
devi onload via javascript "misurare" l'altezza delle 2 colonne, e porre la
più corta uguale a quella più lunga.
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

 affiancate, alte uguale a quella delle due piu' alta.
Guarda, ti possolo solo consigliare di dare un'occhio ad articoli di
questo genere, scritti dal buon Alessandro Fulciniti:
 
 
http://css.html.it/guide/leggi/3/guida-layout-dei-siti-con-i-css/
Un tempo frequentatore di questo NG :)
-- 
~ Se i sintomi persistono, insultare il medico.

 non fattibile via css in modo cross-browser attualmente.
E se le mettessi entrambe in un contenitore, con height a 100%, cosa 
otterrei?
--
rob4you

 otterrei?
prova ... io ho fatto test un annetto fa e non era fattibile.


 ti possolo solo
LOL! Si vede che non hai dormito bene
-- 
Nando [?]
Apostolo della Prova

 LOL! Si vede che non hai dormito bene
Mah, se i danni son limitati a questo, ben vengano. :)


 Mah, se i danni son limitati a questo, ben vengano. :)
Magari scambi un po' di cifre a dai il numero di telefono sbagliato a una
ragazza bellissima...
Ok, smetto di dire idiozie e vado a far cose serie :)
Ciao.


 più corta uguale a quella più lunga.
Ho notato.
Non lo so', boh, mi pare che in questo caso l'unico che si comporta in
modo decente sia IE...
Ho realizzato facilmente il layout, impostando:
1) un DIV contenitore (mi torna piu' comodo)
2) Al suo interno, due DIV
3) Entrambi i DIV contenuti hanno position:relative;  float:left;
height:100%;
4) Il primo ha larghezza 20%, il secondo 80%
Su IE va da Dio...i due div finiscono affiancati ed alti uguali,
esattamente come uno si aspetterebbe.
Su FF...l'eventuale bordo viene calcolato a parte (al contrario di
quello che dice il w3c), per cui i div finiscono automaticamente uno
sotto l'altro.
Invece l'altezza dei due div viene calcolata in base all'altezza del
div contenitore, il quale su FF rispetta perfettamente le direttive
del w3c: se uno dei box contenuti e' piu' alto del contenitore, il
contenitore se ne sbatte. Imho qui oltre a visible, scroll e none, un
bell'attributo 'follow' il w3c ce lo poteva anche mettere. Sopratutto
perche' e' una di quelle cose che, come dicevo prima, a livello di
layout si sono fatte per anni...
Ah, altra cosa curiosa di FF (ai limiti del ridicolo, direi...): due
div, uno width:20% ed uno 80%; il border viene calcolato comunque
fuori dal box, anche se il w3c dice il contrario, come dicevo.
Risultato, i due box finiscono uno sopra l'altro.
Solo che Il primo box, pur avendo width 20%, occupa SI il 20% della
pagina MA il border diviene lungo come tutto il container.
Che casino...

 Che casino...
Effettivamente, ne hai abbastanza in testa.


 questo crea non pochi problemi. Basti vedere IE.
A volte mi chiedo che mi rispondi a fare, se poi tanto non siamo mai
d'accordo
:-DDDDDDDDDDDDDDDDDDD
(gia', non mi trovi per niente d'accordo sulla frase di cui sopra)...
Piuttosto...qualcosa su cui saremo in sintonia: stasera devo sentire
un cliente, forse mi parte il progetto per un sito grosso, che avrei
intenzione di realizzare usando in maniera pesante il js. Se va in
porto, da Giugno comincero' a tempestare di domande il NG e chiamarti
"Maestro" ;-D
(anzi, Maestro, una te la faccio gia' ora: lato client, riesco a far
interagire JS con Sql Server??)

 lato client, riesco a far interagire JS con Sql Server??)
Bisognerebbe capire la necessità, però per brevità ti dirò che:
No, non si può fare in modo crossbrowser. Su IE puoi usare ActiveX e
su Gecko puoi usare XPCOM. Ma di solito la business logic si demanda
al server.


 al server.
Il crossbrowser non e' un problema: al cliente dico di usare quel
browser, e via.
Lo so che il business logic si demanda al server, qui e' solo una
questione di backup locali.
Cioe'...
Al momento c'e' un software installato in ogni ufficio, ciascuno con
il suo bel serverino ed MSDE.
Il futuro (per il cliente) dovrebbe essere un server centrale ed un
sito Intranet il quale effettua le interrogazioni on-line, MA le
scritture in parallelo on-line/locale.
In questo modo, in caso di blackout della rete, gli uffici possono
lavorare in locale con tutti i dati aggiornati.
Ma da js, su IE, non si puo' usare COM?

 fanno la stessa cosa, no?
Non sono l'alternativa tableless. Le tabelle sono state deprecate per la
parte di presentazione, perche` appartengono al dominio della semantica.
Usarle perla presentazione e` esattamente come usare hack per i css.
Quindi sono nati per due scopi differenti.
Col tuo ragionamento, allora, il modo migliore e` di fare una png di tutto
il sito e piazzarla li`, cosi` sai esattamente come apparira` su tutti i
browser.
Bye.

 Ma da js, su IE, non si puo' usare COM?
Ehm. L'ho detto prima :) ActiveX.


 Poi piove, o qualcuno deve portare a casa la lavatrice...
No, sarebbe come dire: sentite, visto che finalmente esiste il telefono,
smettetela di usare impropriamente i piccioni.
