Heim  >  Artikel  >  Web-Frontend  >  Warum verschiebt sich „margin-top: -8px' nach oben, während „margin-bottom: 8px' nach unten verschiebt?

Warum verschiebt sich „margin-top: -8px' nach oben, während „margin-bottom: 8px' nach unten verschiebt?

Barbara Streisand
Barbara StreisandOriginal
2024-11-09 03:38:02446Durchsuche

Why Does `margin-top: -8px` Shift Up While `margin-bottom: 8px` Shifts Down?

Wie negative CSS-Ränder funktionieren und der Unterschied zwischen oberen und unteren Rändern

In CSS werden negative Ränder verwendet, um durch Änderungen visuelle Effekte zu erzeugen die Position von Elementen. Bei Anwendung auf den oberen Rand erzeugen negative Werte eine Verschiebung nach oben, während negative untere Ränder Elemente nach unten verschieben.

Betrachten Sie das Beispiel:

.item {
    position:absolute;
    top:50%;
    margin-top:-8px; /* half of height */
    height: 16px;
}

Hier ist der negative Wert für den oberen Rand von -8px verschiebt das Element um die Hälfte seiner Höhe nach oben. Dies wird erreicht, indem die Randbox (unsichtbarer Abstand um das Element) über den Rand der Inhaltsbox (sichtbarer Bereich) hinaus erweitert wird.

Warum margin-top:-8px ≠ margin-bottom:8px?

Obwohl margin-top:-8px und margin-bottom:8px scheinbar ähnlich sind, unterscheiden sie sich in ihren Auswirkungen. Während Ersterer das Element nach oben verschiebt, drückt Letzterer es nach unten. Dieser Unterschied ergibt sich aus der Position des Ankerpunkts für Ränder.

In CSS sind alle Ränder am Rand des Begrenzungsrahmens des enthaltenden Blocks verankert. Bei einem positionierten Element ist der enthaltende Block das übergeordnete Element des Elements. Bei Verwendung von margin-top befindet sich der Ankerpunkt am oberen Rand des Begrenzungsrahmens des übergeordneten Elements. Negative Werte verschieben das Element also über diesen Punkt.

Umgekehrt verankert margin-bottom das Element am unteren Rand des enthaltenden Blocks. Infolgedessen verschieben negative untere Ränder das Element nach unten, anstatt es nach oben zu drücken.

Intuitives Verständnis

Negative obere Ränder reduzieren effektiv die Höhe des Randfelds und erzeugen so die Illusion, dass sich das Element nach oben bewegt hat. Negative untere Ränder hingegen erhöhen die Höhe des Randrahmens, sodass es so aussieht, als ob das Element nach unten verschoben wäre.

Das obige ist der detaillierte Inhalt vonWarum verschiebt sich „margin-top: -8px' nach oben, während „margin-bottom: 8px' nach unten verschiebt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn