Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    5

    margine di paragrafo in una div

    Vorrei capire meglio il funzionamento di questa proprietà css. Deve essere banale, ma nonostante le ore di studio non capisco.

    Se ho un paragrafo con margine non nullo all'interno di una div, il comportamento cambia a seconda che la div abbia il bordo o no: infatti se la div non ha il bordo, il margine del paragrafo esce dall'area del contenuto della div, come se fosse il margine della div stessa.

    Nel caso in cui la div ha un bordo, invece, il margine rimane all'interno dell'area del contenuto e padding, e assume il colore di sfondo della div.

    Le domande sono:
    1) perché funziona così.
    2) come posso fare in modo che il paragrafo sia sempre nell'area del contenuto compreso il suo margine.

    Allego file di esempio e immagine risultato in firefox


    <!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" lang="en" xml:lang="en" dir="en" lang="en">
    <head>
    <style>
    body{
    margin:0 auto;
    padding:0;
    line-height: 1.5em;
    background:#ddd;
    font-family:Arial;
    font-size:14px;
    }


    div#ciccio{
    background: #ff0055;
    /*border:solid blue 2px;*/
    margin:0;
    padding:0;
    width:250px;
    height:150px;
    }
    div#cocco{
    background: #00ff55;
    border:solid blue 2px;
    margin:0;
    padding:0;
    width:250px;
    height:150px;
    }

    </style>
    </head>
    <body>
    <div id="ciccio" >


    div con margin 0, ma siccome p ha un margin top allora non si attacca al bordo</p>
    </div>
    <div id="cocco" >


    Stessa div ma con border: il margine del paragrafo prende il colore del background</p>
    </div>
    Vorrei sapere perché
    </body>
    </html>
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    5
    nessuno ha qualche idea per aiutarmi?
    Ho notato che anche se assegno margine a altri elementi l'effetto è lo stesso...

    Grazie della pazienza

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    5

    logica del margin collapsing?

    Ho trovato sul forum un post che riconduce il comportamento al margin collapsing:

    http://forum.html.it/forum/showthrea...gine+verticale

    Ma quello che vorrei capire, al di là di trucchi per aggirare il problema è che:
    1) nel mio caso la div contenitore ha margin 0;
    2) perché il margin del contenuto, tramite collapsing, si trasferisce al contenitore, col risultato che lo sfondo di quel margin diventa quello esterno al contenitore stesso, e non quello del contenitore.

    Qual è la logica che segue questo comportamento?

  4. #4
    tu non definisci il paragrafo nel css
    definisci soltanto i div (che strano sentirlo chiamare la div)

    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" dir="en" lang="en">
    e questo è scorretto

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    5
    Hai ragione, nel codice che ho postato il margin di p non è esplicitato.
    In firefox il default non è nullo.

    Se aggiungi
    p{
    margin-top:10px;
    }

    il risultato è lo stesso!!!

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.