Wäre es ein Nachteil, Polsterung zu verwenden? Oder warum scheinen alle mit Marge zu gehen?Warum verwenden die meisten Frameworks margin und nicht padding auf p, h1, h2 etc.?
Antwort
Es gibt auch keinen Nachteil, weil padding
und margin
zwei verschiedene Dinge sind und sie verwendet werden, um verschiedene Effekte zu erzielen. Ohne eine background
scheinen diese Regeln visuell dasselbe zu tun, aber jeder fügt Abstand an verschiedenen Stellen hinzu.
Padding
Padding
fügt Abstand innerhalb des Elements - zwischen dem Rand des Elementes und dessen Inhalt. Es ist so verwendet, dass die content
element
nicht direkt neben der Kante des Elements (oder seine border
) wäre.
Margin
Margin
fügt Abstand außerhalb des Elements selbst. Es gibt an, wie viel Platz zwischen dem Element und den umgebenden Elementen sein sollte.
Weitere Unterschiede:
Margin-top
undmargin-bottom
immer kollabieren, I.E. Zwei Elemente mitmargin-top:15px
undmaragin-bottom:10px
haben einen Abstand von voneinander. Diepadding
Regel ist egal, was diepadding
anderer Elemente ist und nie zusammenbrechen wird.Margins
können Elemente auch verwendet werden, um überlappen negative Werte durch Verwendung. Negativepadding
ist nicht gültig und wird nichts tun.Margin
ist immer transparent und kann keinebackground
haben. Diebackground
ist jedoch auf diepadding
gemalt (es sei denn, Sie verwenden diebackground-origin: content-box
Regel, die den Hintergrund nur innerhalb des Elements Inhalt zeichnet).Margin
können verwendet werden, um Elemente zu zentrieren, den Wert unter Verwendung vonauto
sowohlmargin-left
undmargin-right
.Padding
kann nichtauto
sein.
Führen Sie das folgende Snippet den Unterschied in Aktion zu sehen:
div{
background: #B4D455;
width: 100px;
}
div:nth-of-type(2n){
background: #D4B055;
}
.padding{
padding: 10px;
}
.margin{
margin: 10px;
}
<h3>None</h3>
<div>content</div>
<div>content</div>
<div>content</div>
<h3>padding:10px;</h3>
<div class="padding">content</div>
<div class="padding">content</div>
<div class="padding">content</div>
<h3>margin:10px;</h3>
<div class="margin">content</div>
<div class="margin">content</div>
<div class="margin">content</div>
<h3>margin:10px; and padding:10px;</h3>
<div class="padding margin">content</div>
<div class="padding margin">content</div>
<div class="padding margin">content</div>
Danke. Ich fand heraus, dass der Hauptunterschied für mich darin besteht, dass Margen in einigen Fällen zusammenbrechen und nicht aufgefüllt werden. Ich denke für einige P-Tags ist es schöner, wenn die Zwischenräume zusammenbrechen, so dass Sie keine großen Lücken in Ihren Texten haben. – User9123
Vielleicht habe ich mich nicht klar gemacht. Verwenden Sie nicht 'padding', um Platz zwischen Elementen zu schaffen. Ich habe meine Antwort verbessert, um weitere Unterschiede zwischen den beiden Regeln zu berücksichtigen. –
Danke, so ist meine Frage beantwortet. – User9123
von oben auf das Beispiel Hinzufügen gibt es einen Unterschied mehr. Der Rand kann in einigen Fällen kollabieren und das Padding nicht. So kann es auch ohne Hintergrundfarben anders aussehen, da der gesamte Abstand zwischen zwei gleichartigen Elementen unterschiedlich sein kann.
"Margin-Top" und "Margin-Bottom" kollabieren jedes Mal, nicht in "einigen Fällen". –
Ränder verhindern Elemente aneinander kleben, die nicht durch Auffüllen erfolgen .. –
Es hängt von Ihnen ab, dass, wo Sie Platz haben wollen. Outer space, user margin, inside space, benutze padding. Einfach. –
Willkommen bei Stack Overflow! Diese Frage ist entweder zu breit, meinungsorientiert oder erfordert eine Diskussion und ist daher für Stack Overflow off-topic. Wenn Sie ein spezifisches, beantwortbares Programmierproblem haben, geben Sie bitte alle Details an. –