CSS-Absolutpositionierungskonflikt mit automatischen Rändern
In CSS entfernt die absolute Positionseigenschaft ein Element aus dem normalen Fluss des Dokuments und Die Positionierung erfolgt anhand der Eigenschaften „oben“, „links“, „rechts“ und „unten“. Wenn jedoch die Eigenschaften „margin-left“ und „margin-right“ auf „Auto“ mit einer absoluten Position eingestellt sind, haben sie keine Auswirkung.
Dies liegt an den Eigenschaften „margin-left: auto“ und „margin-right: auto“. Versuchen Sie, das Element innerhalb seines enthaltenden Blocks zu zentrieren. Bei einem Element mit einer absoluten Position ist sein enthaltender Block der Dokumentkörper. Allerdings hat der Dokumentkörper selbst keine festgelegte Breite, sodass der Browser nicht bestimmen kann, wo das Element zentriert werden soll.
Wenn andererseits die Positionseigenschaft auf relativ gesetzt ist, wird das Element entfernt der normale Fluss, aber seine imaginäre Box bleibt innerhalb des Dokumentenflusses. Wenn in diesem Fall margin-left und margin-right auf „auto“ eingestellt sind, werden die Ränder auf der Grundlage der Breite des enthaltenden Blocks berechnet, der bei einem relativ positionierten Element immer noch den Dokumentkörper darstellt. Da der Dokumentkörper jedoch eine festgelegte Breite hat, kann der Browser korrekt bestimmen, wo das Element zentriert werden soll.
So zentrieren Sie ein Element mit absoluter Positionierung:
Stattdessen Bei der Verwendung von margin-left: auto und margin-right: auto können Sie die linken und rechten Eigenschaften auf 50 % festlegen. Dadurch wird das Element im Dokumentkörper zentriert. Sie müssen außerdem die oberen und unteren Eigenschaften angeben, um zu verhindern, dass das Element den Bildschirm verlässt.
Das obige ist der detaillierte Inhalt vonWarum funktionieren automatische Ränder nicht mit der absoluten Positionierung in CSS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!