Was macht auto
man in margin:0 auto;
?
Ich kann nicht verstehen, was auto
tut. Ich weiß, dass es manchmal dazu führt, dass Objekte zentriert werden. Vielen Dank.
Wenn Sie width
für das Objekt, auf das Sie angewendet haben, ein a angegeben haben margin: 0 auto
, befindet sich das Objekt zentral im übergeordneten Container.
Wenn Sie auto
als zweiten Parameter angeben, wird der Browser grundsätzlich angewiesen , den linken und rechten Rand automatisch zu bestimmen, indem er sie gleichermaßen festlegt. Dies garantiert, dass der linke und der rechte Rand auf die gleiche Größe eingestellt werden. Der erste Parameter 0 gibt an, dass sowohl der obere als auch der untere Rand auf 0 gesetzt werden.
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
Um Ihnen ein Beispiel zu geben : Wenn das übergeordnete Element 100 Pixel und das untergeordnete Element 50 Pixel groß ist, bestimmt die auto
Eigenschaft, dass 50 Pixel freien Speicherplatz zwischen margin-left
und gemeinsam genutzt werden können margin-right
:
var freeSpace = 100 - 50;
var equalShare = freeSpace / 2;
Welches würde geben:
margin-left:25;
margin-right:25;
Schauen Sie sich diese jsFiddle an . Sie müssen nicht die übergeordnete Breite angeben, sondern nur die Breite des untergeordneten Objekts.
body
und wir immer gebenwidth
undmargin:0 auto
zu#wrapper
%
? Ich meine, gibt es eine andere Eigenschaft in CSS, die das gleiche Ergebnis wie links und rechts liefern kannauto
margin:auto 0
Bedingungen?auto: Der Browser legt den Rand fest. Das Ergebnis ist vom Browser abhängig
margin: 0 gibt automatisch an
quelle
Aus der CSS-Spezifikation zur Berechnung von Breiten und Rändern für nicht ersetzte Elemente auf Blockebene im normalen Fluss :
quelle
0
ist für oben-unten undauto
für links-rechts. Dies bedeutet, dass der linke und rechte Rand einen automatischen Rand entsprechend der Breite des Elements und der Breite des Containers annehmen.Wenn Sie ein Element in die Mittelposition bringen möchten,
margin:auto
funktioniert dies im Allgemeinen einwandfrei. Es funktioniert aber nur in Blockelementen.quelle
0 steht für oben-unten und Auto für links-rechts. Der Browser legt den Rand fest.
quelle
Es wird klarer, wenn erklärt wird, wie die beiden Werte funktionieren.
Die Margin-Eigenschaft ist eine Abkürzung für:
Wie kommt es also, dass nur zwei Werte vorliegen?
Nun, Sie können den Rand mit vier Werten wie folgt ausdrücken:
das würde 10px oben, 20px rechts, 15px unten, 5px links bedeuten
Ebenso können Sie auch mit zwei Werten wie folgt ausdrücken:
Dies würde Ihnen einen Rand von 20 Pixel oben und unten und 10 Pixel links und rechts geben.
Und wenn Sie einstellen:
Dann bedeutet das oberen und unteren Rand von 20px und linken und rechten Rand von Auto. Und auto bedeutet, dass der linke / rechte Rand basierend auf dem Container automatisch festgelegt wird. Wenn es sich bei Ihrem Element um ein Element vom Typ Block handelt, dh um ein Feld, das die gesamte Breite der Ansicht einnimmt, werden der linke und der rechte Rand automatisch gleich eingestellt, sodass das Element zentriert wird.
quelle
Es ist ein defekter / sehr schwer zu verwendender Ersatz für das "Center" -Tag. Dies ist praktisch, wenn Sie defekte Tabellen und eine nicht funktionierende Zentrierung für Blöcke und Text benötigen.
quelle