Was macht automan in margin:0 auto;?
Ich kann nicht verstehen, was autotut. Ich weiß, dass es manchmal dazu führt, dass Objekte zentriert werden. Vielen Dank.
Was macht automan in margin:0 auto;?
Ich kann nicht verstehen, was autotut. Ich weiß, dass es manchmal dazu führt, dass Objekte zentriert werden. Vielen Dank.
Antworten:
Wenn Sie widthfü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 autoals 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 autoEigenschaft, dass 50 Pixel freien Speicherplatz zwischen margin-leftund 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.
%? Ich meine, gibt es eine andere Eigenschaft in CSS, die das gleiche Ergebnis wie links und rechts liefern kannauto
margin:auto 0Bedingungen?
auto: Der Browser legt den Rand fest. Das Ergebnis ist vom Browser abhängig
margin: 0 gibt automatisch an
* top and bottom margins are 0
* right and left margins are auto
Aus der CSS-Spezifikation zur Berechnung von Breiten und Rändern für nicht ersetzte Elemente auf Blockebene im normalen Fluss :
Wenn sowohl 'Rand-Links' als auch 'Rand-Rechts' 'Auto' sind, sind ihre verwendeten Werte gleich. Dadurch wird das Element horizontal in Bezug auf die Kanten des enthaltenen Blocks zentriert.
margin:0 auto;
0ist für oben-unten und autofü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:autofunktioniert dies im Allgemeinen einwandfrei. Es funktioniert aber nur in Blockelementen.
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
0 steht für oben-unten und Auto für links-rechts. Der Browser legt den Rand fest.
Es wird klarer, wenn erklärt wird, wie die beiden Werte funktionieren.
Die Margin-Eigenschaft ist eine Abkürzung für:
margin-top
margin-right
margin-bottom
margin-left
Wie kommt es also, dass nur zwei Werte vorliegen?
Nun, Sie können den Rand mit vier Werten wie folgt ausdrücken:
margin: 10px, 20px, 15px, 5px;
das würde 10px oben, 20px rechts, 15px unten, 5px links bedeuten
Ebenso können Sie auch mit zwei Werten wie folgt ausdrücken:
margin: 20px 10px;
Dies würde Ihnen einen Rand von 20 Pixel oben und unten und 10 Pixel links und rechts geben.
Und wenn Sie einstellen:
margin: 20px auto;
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.
bodyund wir immer gebenwidthundmargin:0 autozu#wrapper