|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2056
|
footer in fondo alla pagina , trovato come fare, ma non capisco una cosa !
Ciao,
non capisco una cosa relativa alla impaginazione della mia pagina con i css . Vi spiego il problema e la soluzione che ho trovato online : in pratica io vorrei fare un layout formato da due colonne , header e footer ; quest'ultimo vorrei che fosse sempre visualizzato in fondo alla pagina anche quando i contenuti delle due colonne sono pochi . Per far ciò ho trovato la seguente soluzione : http://css.html.it/guide/lezione/486...o-alla-pagina/ ho provato ad effettuare le modifiche descritte nella pagina e ottengo proprio ciò che volevo solo che vorrei capire delle parti di codice che non mi sono molto chiare . Codice:
html, body {
margin:0; /* aggiunto rispetto al codice riportato dal sito*/
height: 100%;
}
#container {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -50px;
}
#footer, #push {
height: 50px;
clear: both;
}
perchè l'inserimento del <div> push vuoto con height 50px può risolvere il mio problema ? le righe di codice da #container in poi non le comprendo , cioè min-height imposto l'altezza minima del container , perchè non basta mettere height: 100% ? un altra cosa : Codice:
html, body {
margin:0; /* aggiunto rispetto al codice riportato dal sito*/
height: 100%;
}
Mi scuso per le tante (troppe) domande . |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 414
|
La cosa è molto semplice.
Tu imposti il #container con altezza minima pari al 100% e ingrandimento automatico (nel #container "height" è ripetuto due volte perchè si tratta di un workaround per gestire la stessa proprietà su quel simpaticone di IE6); inoltre dai un margine inferiore negativo a #container in modo che, qualunque contenuto tu vada ad inserire nel div, hai sempre e comunque 50px (nel nostro caso) liberi per metterci il footer. A questo punto imposti #push (che è contenuto in #container, a differenza di #footer che è sullo stesso piano di #container!!) che è un div (presumo vuoto) che "schiaccia" in giu il footer in modo che non si accavalli con nessun contenuto. Per quanto riguarda il discorso di Codice:
html, body {
height: 100%;
}
Quindi se anche a <html> è stato detto di occupare il 100% dell'altezza del suo "genitore" (ovvero dell'intera pagina, dato che non esistono tag più "in alto" in gerarchia rispetto a <html>), <body> prenderà il 100% dello spazio di <html> (che corrisponde a sua volta al 100% dello spazio pagina), altrimenti non lo farà. E' un ragionamento un po' aggrovigliato ma è molto semplice (3° principio della congruenza FTW!! )
__________________
Concluso positivamente con: 2fst4rc, guns81, fernando59, Kewell, Guidoch, coontrol86, Holly_GR, siemens, WildCat Hendrix, Thommy_Yorke, davidep85, fabiannit, semmy83, TheDoctor1983, uazzamerican "Un androide è per sempre" Ultima modifica di ConRoe : 09-11-2011 alle 16:45. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2056
|
Quote:
il problema resta sulla prima parte.. mi viene un dubbio sui margini : se lo imposto negativo il blocco #container vorrebbe dire che va di 50px al di sotto del blocco body ? non capisco mi potresti rispiegare anche la questione dell'ingrandimento automatico ? non ho capito bene come funziona questa cosa del workaround
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 414
|
Se applichi un margine negativo a un elemento senza float, il margine non si comporta come un vero e proprio margine (muovendo il div correlato) ma "tira in su" i div che metti dopo.
Per questo hai poi bisogno di un div #push che spinga il footer al suo posto per evitare che si sovrapponga al contenuto presente nel #container. Per quanto riguarda il "workaround", non è nient'altro che un "hack" per far funzionare l'auto ingrandimento dei div anche su IE5.x e IE6... Solo per mantenere un po' di retrocompatibilità, niente di che.
__________________
Concluso positivamente con: 2fst4rc, guns81, fernando59, Kewell, Guidoch, coontrol86, Holly_GR, siemens, WildCat Hendrix, Thommy_Yorke, davidep85, fabiannit, semmy83, TheDoctor1983, uazzamerican "Un androide è per sempre" Ultima modifica di ConRoe : 09-11-2011 alle 16:47. Motivo: dimenticavo la questione dell'auto height XD |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2056
|
Quote:
c'è un sito che spiega i vari tipi di hack e come funzionano di preciso ? |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 414
|
Quote:
![]() che c'entra l'altezza del container? per quanto riguarda gli "hack", che io sappia non credo esista un sito... più che altro ogni tanto vedrai che IE interpreta alcune parti di codice a suo modo: ti basta una googlata per capire il trucco per sistemare la situazione... poi quando hai un po' di esperienza lo capisci da te dove mettere le mani
__________________
Concluso positivamente con: 2fst4rc, guns81, fernando59, Kewell, Guidoch, coontrol86, Holly_GR, siemens, WildCat Hendrix, Thommy_Yorke, davidep85, fabiannit, semmy83, TheDoctor1983, uazzamerican "Un androide è per sempre" |
|
|
|
|
|
|
#7 | ||
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2056
|
Quote:
Codice:
min-height: 100%;
height: auto !important;
height: 100%;
Quote:
|
||
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 414
|
Codice:
min-height: 100%;
height: auto !important;
height: 100%;
per quanto riguarda la key !important dai un occhio qua http://css.html.it/guide/lezione/470...ord-important/
__________________
Concluso positivamente con: 2fst4rc, guns81, fernando59, Kewell, Guidoch, coontrol86, Holly_GR, siemens, WildCat Hendrix, Thommy_Yorke, davidep85, fabiannit, semmy83, TheDoctor1983, uazzamerican "Un androide è per sempre" |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2056
|
grazie mille ! sei stato gentilissimo !
ora se posso vi faccio un altra domandina in pratica ho creato la struttura della mia pagina formata da : top, colonna menu, e colonna per il contenuto footer a queste poi ho applicato il css sopra scritto per far si che il footer rimanga sempre in fondo pagina, barra menu a larghezza fissa con float left e parte per il contenuto senza dimensione fissa. Nella colonna del menu vi ho messo questa tipologia di menu : http://css.flepstudio.org/css-tutori...e-di-base.html l'ho messo cosi al volo poi lo ricambierò giusto per vedere una cosa , pensavo che implementando un menu del genere portasse al seguente errore: all'apertura delle sottosezioni pensavo che queste ultime andassero a finire sotto il contenuto della pagina (e quindi non visualizzandole correttamente) , mentre in realtà i vari menu come giusto che sia fuoriescono si dallo spazio dedicato al menu , ma restano su un livello superiore rispetto al div #contenuto . Come mai accade questa cosa ? non so se mi sono spiegato bene .. Ultima modifica di aeroxr1 : 10-11-2011 alle 21:18. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:24.











)









