Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Posizionamento div per layout sito

    ciao a tutti, sto facendo a botte con il layout di un sito, volendo usare i div e i css.
    codice:
    div#header {
    	
    	background-image:url(imm_per_sito/sfondo_divheader.jpg);
    	background-repeat:no-repeat;
    	position:absolute;
    	left:50%;
    	margin-left:-446px;
    	top:50px;
    	width:893px;
    	height:516px;
    }
    div#main {  /* sfondo ripetuto */
    
    	background-image:url(imm_per_sito/sfondo_repeat.jpg);
    	background-repeat:repeat-y;
    	position:absolute;
    	left:50%;
    	margin-left:-446px;
    	top:566px;
    	width:893px;
    	min-height:100px;
    }
    
    div#sezione { /* contenuti */
    
    	background-image:url(imm_per_sito/sfondo_divsezione.jpg);
    	background-repeat:no-repeat;
    	position:relative;
    	left:212px;
    	top:-348px;
    	width:669px;
    	min-height:357px;
    	text-align:left;
    }
    
    div#footer {
    
    	background-image:url(imm_per_sito/sfondo_divfooter.jpg);
    	background-repeat:no-repeat;
    	position:relative;
    	left:0px;
    	top:0px;
    	width:893px;
    	height:259px;
    }
    
    --------------------------------------
    
    la struttura della pagina sarebbe questa:
    
    <div id="header"></div>
    
    <div id="main">
    
    <div id="sezione"></div>
    
    <div id="footer"></div>
    
    </div>
    il problema sta nel fatto che...
    l'altezza del div main è definita dalla grandezza del div sezione, solo che questo è a sua volta posizionato + in alto con un top=-384px
    quindi il div main risulta essere troppo lungo, lascia cioè uno spazio in cui si vede solo lo sfondo...
    come si risolve?
    cosa sbaglio?

    grazie a tutti

    Ps tra le altre cose ci sono due cose che non capisco molto..

    1. perchè un div relative fa riferimento all'elemento precedente e non all'elemento che lo contiene... mi par un casino, perchè in questo modo se dovessi cambiare la posizione dei div contenuti nel div main dovrei andare a modificare il css di tutti quanti.

    2. perchè l'altezza del div non viene influenzata dal posizionamento del div stesso, almeno per quel che riguarda l'altezza.... (che è appunto il mio problema...)

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Intanto vedi questi due articoli, poi ripensa al tuo layout e torna qui a dirci se hai risolto.
    I posizionamenti assoluti e Capire i posizionamenti relativi
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ho letto entrambi gli articoli e mi hanno chiarito un po di cose, quindi grazie mille ma ora ti chiedo...

    volevo creare un layout di questo tipo:



    a me verrebbe da dire che...

    <div id="header"> - absolute così lo posizione riferendomi alla pagina

    <div id="menu"> - absolute
    <div id="sezione"> - absolute

    perchè in questo caso li devo posizionare sopra altri div..

    <div id="main"> - ?_? come faccio a posizionarlo in modo che si allunga conforme la lunghezza del div sezione?
    o nel caso sezione fosse + corto del div header, che si azzerri.

    <div id="footer"> - absolute

    grazie, ciao ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Vedi invece questa marcatura:
    codice:
    <body>
      <div id="hmf">
        <div id="header">...</div>
        <div id="main">...</div>
        <div id="footer">...</div>
      </div>
      <div id=ms">
        <div id="menu">...</div>
        <div id="sezione">...</div>
      </div>
    </body>
    Dove #hmf e #ms sono posizionati in modo assoluto o relativo ed avranno sfondo trasparente; inoltre saranno centrati rispetto al body. Chiaramente avranno z-index opportuno, in modo da gestire correttamente la sovrapposizione.
    Gli altri restano posizionati in modo statico (default) (con qualche dubbio rispetto a #menu e #sezione, di cui non conosco la larghezza ne` il contenuto, per cui non posso pronunciarmi).

    Comunque il footer non puoi posizionarlo in modo assoluto o relativo, dato che non conosci l'altezza di main e non sapresti dove posizionarlo.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    usando la struttura da te indicata...mi rimanevano un paio di problemi...

    1. la sezione non definendo position:absolute, va sotto il menu

    2. il main (che contiente una riga di 1px ripetuta) che forma lo sfondo, non si allunga conforme il div sezione.

    modificando un po la struttura in questo modo:
    codice:
    <div id="hmf">
        <div id="header"></div>
        <div id="main">
    	<div id="sezione">
    	</div>
        </div>
        <div id="footer"></div>
    </div>
    
    <div id="menu_sx"></div>
    e usando il seguente CSS

    codice:
    div#hmf {
    	
    	border:3px;
    	border-color:#000000; /*NERO*/
    	border-style:dashed;
    	
    	position:absolute;
    	left:50%;
    	margin-left:-450px;
    	top:50px;
    	width:900px;
    	z-index:1;
    }
    
    div#ms {
    
    	border:3px;
    	border-color:#CCCCCC; /*GRIGIO*/
    	border-style:dashed;
    	
    	position:absolute;
    	left:50%;
    	margin-left:-450px;
    	top:206px;
    	width:900px;
    	z-index:2;
    }
    
    
    
    
    
    
    div#header {
    	
    	border:3px;
    	border-color:#FF0000; /*ROSSO*/
    	border-style:dashed;
    	
    	background-image:url(imm_per_sito/sfondo_divheader.jpg);
    	background-repeat:no-repeat;
    	width:893px;
    	height:516px;
    }
    
    
    div#main {
    
    	border:3px;
    	border-color:#009900; /*VERDE*/
    	border-style:dashed;
    	
    	
    	background-image:url(imm_per_sito/sfondo_repeat.jpg);
    	background-repeat:repeat-y;
    	top:566px;
    	width:893px;
    	min-height:100px;
    }
    
    div#sezione {
    
    	border:3px;
    	border-color:#FF9900; /*ARANCIONE*/
    	border-style:dashed;
    		
    	background-image:url(imm_per_sito/sfondo_divsezione.jpg);
    	background-repeat:no-repeat;
    	left:212px;
    	width:669px;
    	min-height:357px;
    	text-align:left;
    	overflow:hidden;
    }
    
    div#footer {
    
    	border:3px;
    	border-color:#FFFF00; /*GIALLO*/
    	border-style:dashed;
    		
    	background-image:url(imm_per_sito/sfondo_divfooter.jpg);
    	background-repeat:no-repeat;
    	width:893px;
    	height:259px;
    }
    
    div#menu_sx {
    
    	border:3px;
    	border-color:#FF33FF; /*VIOLA*/
    	border-style:dashed;
    
    	background-color:#079b4d;
    	position:absolute;
    	left:50%;
    	margin-left:-440px;
    	top:218px;
    	width:206px;
    	overflow:hidden;
    	height:400px;
    }


    mi sembra che così ci siamo quasi...
    mi servirebbe spostare il div sezione all'altezza del menu (affiancandolo)
    e mantenere che il div main si allunghi conforme quanto si allunga il div sezione.

    mi verrebbe da pensare di usare position:relative; per il div sezione, in questo modo potrei affiancarlo appunto al menu.
    ma... il div main manterebbe tutto l'ingombro del div sezione e non solo la parte che si sovrappone..quindi non so bene che fare...

    ....qualche consiglio?
    position relative e absolute mi par di averli capiti ma non so come poter gestire una cosa di questo tipo.

    grazie per i consigli, ciao ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    per affiancare due blocchi, devono avere il float ambedue.
    Invece non puoi usare il left o top: puo spostarli con i margini

    In pratica al #menu puoi dare:
    float: left;
    margin: 0;

    al #sezione:
    float: left;
    margin: 0 0 0 6px;

    togliendo il left.

    E devi togliere il top anche a main.

    Per il secondo problema, se ho capito giusto lo risolvi con un min-height nei browser standard, mentre in IE serve un minimo di JS (o qualche altro hack).

    soprattutto riferito al main che dovrebbe allungarsi conforme la lunghezza dei contenuti in sezione
    Forse ho capito male, allora.
    In tal caso il #MS (che contiene menu e sezione) va inserito dentro al main, posizioniato in modo relativo con margine top negativo.
    Ma allora e` necessario un clear (da inserire in un apposito blocco - trasparente, invisibile - da inserire dopo i due flottati: puoi veder la pillola di fcaldera sul clearing, per una soluzione ideale; oppure inserire un blocco il cui CSS contiene width:100%; clear:both; height:1px; font-height:1px;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    sfortunatamente mi avevi risposto giusto nel momento in cui stavo modificando il post...
    cmq... ho seguito le tue indicazioni ma non riesco cmq a risolvere il problema

    ti posto un'immagine per farti capire meglio cosa intendo...



    il problema rimane quello del div main che si allunga correttamente dell'altezza del div sezione..
    MA...

    dovendo spostare il div sezione in alto di 348px
    risulta che il div main è troppo lungo...

    non so se mi sono spiegato.

    grazie per tutti i consigli

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Continuo a non capire ...

    Ma perche` vuoi che Header finisca sotto a menu e sezione?

    Nell'ultima immagine cio` non si vede (a parte il tratteggio colorato, che immagino sia solo per visualizzare le parti).

    Nell'ultima immagine vedo un header (largo 100%), seguito da un main (suddiviso in due colonne); infine un footer (largo 100%).
    Questo e` uno dei tanti layout "standard" che puoi trovare nelle raccolte di layout (vedi in rete o nei "link utili" del forum), e si realizza molto semplicemente con i float (senza bisogno di posizionamenti).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Originariamente inviato da Mich_
    Continuo a non capire ...

    Ma perche` vuoi che Header finisca sotto a menu e sezione?

    Nell'ultima immagine cio` non si vede (a parte il tratteggio colorato, che immagino sia solo per visualizzare le parti).

    Nell'ultima immagine vedo un header (largo 100%), seguito da un main (suddiviso in due colonne); infine un footer (largo 100%).
    Ora provo a spiegarmi un po meglio...

    Io ho un layout grafico da seguire...questo:



    per realizzare il sito con lo stesso layout grafico ho deciso di suddividere in questo modo:

    Nel Header 100% (tratteggio rosso) è contenuta un'immagine di sfondo, questa immagine come puoi vedere è stata tenuta abbastanza lunga perchè sfumata.

    Nel Main 100% (tratteggio verde) è contenuta una strisciolina di 1px che viene ripetuta, cioè la parte dello sfondo che risulta omogenea e senza sfumature.

    Nel Footer 100% (tratteggio giallo) è contenuta un'immagine di sfondo che chiude.

    Tutti questi sono contenuti in HMF (tratteggio nero) e quindi centrati sulla pagina.

    Dentro a Main è stato inserito MS (tratteggio grigio) posizionato in modo relativo.

    MS contiene:

    Menu (senza tratteggio)

    Sezione (tratteggio arancione) che andrà a contenere, le pagine, i contenuti, una volta che si è cliccato sul menu.

    Per questo motivo Sezione deve allungare il Main (lo sfondo ripetuto) conforme la propria lunghezza, spostando di conseguenza il footer.

    -------------

    Il motivo per cui Menu e Sezione vanno a sovrapporsi all'header è dato dalla grafica del sito...
    Se tagliassi l'immagine dell'header + in alto, il resto dell'immagine che sfuma dovrei inserirla in Main... ma come potrei poi far ripetere la parte omogenea dello sfondo?

    Spero di essermi spiegato meglio, se hai qualche domanda chiedi pure, ti ringrazio per pazienza e consigli.

    Ciao ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io provo a rovesciare il punto di vista.

    Per quanto riguarda il contenuto, hai una struttura semplice: header, due colonne, footer
    Per lo sfondo, hai un header, una parte ripetuta (puo' essere un colore uniforme?) ed un footer.

    Il problema e` che l'header dello sfondo non finisce in coincidenza con l'header del contenuto, e questo ti impone delle scelte non standard.
    Invece (se ho visto giusto) nel footer la dimensione dello sfondo coincide con quella del contenuto.

    Mi pare di notare (ma chiedo conferma) che la colonna di sinistra ha sfondo trasparente (usa come sfondo quello generale), mentre la colonna di destra ha un suo sfondo sfumato.

    A questo punto la soluzione e` semplice (vedi immagine)
    Lo sfondo alto lo metti nel box nero (body o contenitore del tutto), in cui metti anche il colore uniforme
    Lo sfondo basso lo metti nel footer (blu)
    Lasci uno spazio sui bordi delle colonne, in modo che si veda lo sfondo laterale
    Nella colonna di sinstra puoi metterci uno sfondo semitrasparente
    Immagini allegate Immagini allegate
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.