In CSS kann die Positionseigenschaft auf verschiedene Werte eingestellt werden, einschließlich relativ, absolut und fest. Wenn ein Element absolut positioniert ist, wird es aus dem normalen Dokumentfluss entfernt und relativ zu seinem nächstgelegenen positionierten Vorgänger oder dem Ansichtsfenster positioniert. Dieses Verhalten kann dazu führen, dass Elemente übereinander gestapelt werden, was möglicherweise nicht der gewünschte Effekt ist.
Im folgenden Beispiel sind die Elemente mit den Klassen .row und .col absolut positioniert, wodurch sie sich überlappen:
body { position: relative; /* Contains absolutely positioned elements */ } .container { position: absolute; } .row { position: relative; } .col1, .col2 { position: absolute; }
Um dieses Problem zu beheben und die Elemente vertikal zu stapeln, müssen wir ihre Höhen angeben und sicherstellen, dass ihre vertikale Position korrekt verwaltet wird.
Während es nicht ideal ist, das CSS für die Elemente zu ändern, besteht eine mögliche Lösung ohne Entfernung der Positionseigenschaften darin, die Höhe jeder Zeile anzugeben und die Top-Eigenschaft anzupassen der zweiten Zeile, um die Höhe der ersten Zeile zu berücksichtigen:
body { /* position: relative; remains unchanged */ } .container { /* position: absolute; remains unchanged */ } .row { position: relative; height: 2em; /* Specify height for vertical stacking */ } .col1, .col2 { /* position: absolute; remains unchanged */ } #row2 { top: 2em; /* Offset to account for the height of #row1 */ }
Das obige ist der detaillierte Inhalt vonWie stapele ich überlappende, absolut positionierte Elemente in CSS vertikal?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!