Visualizzazione dei risultati da 1 a 7 su 7

Discussione: position:relative (FF)

  1. #1
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336

    position:relative (FF)

    Non so se il titolo è azzeccato perchè non so proprio quale possa essere il problema... anzi, non sono neanche sicura che ci sia un problema, più probabilmente sono io che sbaglio una cavolata ma portate pazienza, sono i miei primi tentativi table-less e mi sto perdendo nelle difficoltà iniziali, aiutatemi voi!
    Ecco il mio primo banalissimo tentativo: mettere nel body un div che rappresenti l'intestazione, con una gif del logo a sinistra, un messaggio e il logout a destra, il percorso attraverso le pagine sotto:
    codice:
    <body>
    <div style='height:85px; width:1000px; position:relative; top:0px; left:0px;'>
    [img]logo.gif[/img]
    <p class='SfondoTitolo6'>Benvenuto UTENTE</p>
    
    
    [img]exit.gif[/img] Logout</p>
    <p style='clear:both; height:25px; text-align:left'>
    Path: &raquo;Home
    </p>
    </div>
    </body>
    (le classi hanno solo caratteristiche riguardanti il colore o il font del testo, tutto quello che dovrebbe essere importante per il problema è negli attributi style.... a proposito, già che ci siamo, è sbagliato mischiare attributi class e style? Se fissano in modo diverso una stessa caratteristica, quale viene considerata dal browser? Sì lo so, sono curiosa, è che voglio imparare.... )
    Ora, vedete che è un codice molto molto essenziale....forse anche troppo perchè così visualizzata la pagina presenta in alto uno spazio bianco alto circa 5px, ovvero l'intestazione non è "attaccata" in alto... Se metto position:absolute; si posiziona invece correttamente, "attaccata" in alto a sinistra... Ma la cosa (per me...) più strana è che se alla versione con position:relative; aggiungo border: 1px solid red; vedo che il div (ora con il bordo rosso) si è spostato in alto esattamente come avrei voluto.... mentre appunto con border 0 resta spostato in basso di qualche px... Qua mi sa che ho dimenticato qualcosa di importante vero? :rollo:
    Ah, dimenticavo: vi sto parlando della visualizzazione con firefox, non ho ancora avuto il coraggio di aprirla con explorer...

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    73

    margin degli elementi

    l'intestazione non è attaccata in alto perché gli elementi blocco in html (es. body, p, h1, ecc..) hanno un loro margine intrinseco.
    Per toglierlo prova ad aggiungere nel css
    codice:
    body, p {margin: 0; padding:0;}
    e a questo punto potresti anche togliere il position relative.

    Ciao e tanti auguri!!

  3. #3
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Ciao, grazie per la risposta! Effettivamente ora resta attaccato in alto....ma perchè??? Voglio dire, il p è compreso dentro il div, non dovrebbe essere quello -in qualità di contenitore- a dettare la distanza dal bordo superiore della pagina? Inoltre, perchè se mettevo un border al div si spostava effettivamente in alto? Sono davvero parecchio confusa....

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    73

    margini del p

    a differenza di come potrebbe sembrare, non è solo l'elemento div in quanto contenitore di p a determinare la distanza di p dal lato superiore della pagina, ma sono anche i margini di p stesso e di body, che se non vengono azzerati, hanno un valore di default.
    Questo valore (e qui viene la parte più difficile da spiegare) dei margini di due elementi si comporta in maniera diversa a seconda che i due elementi siano separati o meno da bordi o padding (anche di altri elementi: nel nostro caso il div).
    Se non sono separati, i margini verticali collassano in un margine unico (di valore pari al più ampio dei due); mentre se sono separati (quando aggiungevi il bordo al div) i margini si sommano.

    So di non essere molto chiaro: dovresti provare assegnando colori di sfondo diversi a body, div e p e poi provando ad azzerare i margini di body e p (prima uno alla volta, poi tutti e due) per vedere la differenza di comportamento.

  5. #5
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Non è vero che non sei chiaro, anzi mi sembra di avere capito cosa vuoi dire..ed effettivamente il suggerimento dell'usare i colori mi ha aiutato molto! C'è solo una cosa che non mi ha convinto del tutto, vedi se riesci anceh in questa impresa... Allora, ho ripristinato il codice iniziale, senza togliere i margin del p e senza mettere bordi, ma mettendo margin:0 al body e colore nero al body, bianco al div e rosso al primo p (quello che resta in alto). Ora, con questo codice vedo appunto il div spostato in basso: lo spazio "di troppo" è di colore nero...non doveva essere quello del p (quindi rosso) a questo punto? Infatti poi ho aggiunto al p margin:0px e ora l'header è esattamente in alto come me lo aspettavo come me lo aspettavo... :master:
    In opgni caso ti ringrazio per le risposte e la pazienza che hai vuto finora!!!

    PS AUGURI!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    73
    il margin distanzia gli elementi tra di loro, ma (a differenza del padding) non estende il colore di sfondo di un elemento.

    Allora, nella prima prova, hai messo il margin 0 per BODY(che ha colore di sfondo nero), mentre non lo hai messo per P (che ha colore di sfondo rosso).
    Questo vuol dire che P ha un certo margin di default che lo distanzia da BODY. Lo spazio vuoto che separa P e BODY prende il colore di sfondo nero di BODY proprio perchè la distanza è data dal margin di P e il margin non estende il colore di sfondo di P.

  7. #7
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Capito!!! Ora è tutto più chiaro!

    Grazie mille edy72!!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.