2013-02-15 7 views
13

In letzter Zeit hatte ich Probleme mit den Rändern, aber ich konnte es nicht lösen. Mein HTML sah wie folgt aus:CSS-Marge Überlappung anstelle der Entfernung

<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; 
} 

Und Problem war, dass die Margen einander überlappen anstelle des Gebens 40px Abstand zwischen zwei Elementen.

Meine Frage ist: warum? Ich fand, dass das Hinzufügen zu .Info-Box-Überlauf: versteckte dies behoben, aber vielleicht gibt es einen besseren Weg?

+0

können Sie nach mehr, ihre Container anderen CSS und HTML. –

Antwort

37

Wieder - Sie müssen verstehen, auf welche Weise Margen interpretiert werden. Margin bezieht sich auf die Position eines anderen Elements ohne seine Ränder. Sie können keine Ränder summieren.

How margins work

+1

Ja, aber warum, wenn ich einen Überlauf hinzugefügt habe: versteckt in .info-Box hat es funktioniert? Ich nehme an, dass Paddings summiert werden können? – adi86

+0

@ user1785951 - Ich habe es mit Ihrem Vorschlag versucht und es hat nicht für mich funktioniert :) Ja, Paddings können summiert werden, weil sie innerhalb des Blockelements sind - sie beziehen sich auf das enthaltende Element, nicht auf Geschwister. Aber Sie müssen daran denken, dass sie nicht als Margen funktionieren. – Kamo

+0

Ok Ich bekomme es wissen Vielen Dank – adi86