2013-02-15 12 views
13

Ultimamente ho avuto problemi con i margini ma non ero in grado di risolverlo. mio HTML si presentava così:Il margine CSS si sovrappone invece di dare la distanza

<div class="info-box">Some text</div> 
<div class="form">...</div> 

CSS:

.info-box{ 
    border-radius: 5px; 
    border: 1px solid red; 
    margin-bottom: 20px; 
} 

.form{ 
    margin-top: 20px; 
} 

E problema era che i margini sovrapposti l'un l'altro invece di dare 40px distanza tra due elementi.

La mia domanda è: perché? Ho trovato che l'aggiunta di .info-box overflow: nascosto risolto questo, ma forse c'è modo migliore?

+0

è possibile inviare più, loro contenitore altro CSS e HTML. –

risposta

37

Ancora: è necessario capire in che modo vengono interpretati i margini. Il margine si riferisce alla posizione dell'elemento di un altro escluso lo i suoi margini. Non puoi sommare i margini.

How margins work

+1

Sì, ma perché quando ho aggiunto overflow: nascosto a .info-box ha funzionato? Suppongo che si possano riassumere i paddings? – adi86

+0

@ user1785951 - L'ho provato con il tuo suggerimento e non ha funzionato per me :) Sì, i paddings possono essere sommati perché si trovano all'interno di un elemento di blocco - si riferiscono all'elemento contenente, non ai fratelli. Ma devi ricordare che non funzionano come margini. – Kamo

+0

Ok, lo capisco grazie mille – adi86

Problemi correlati