Heim >Web-Frontend >CSS-Tutorial >Warum verschiebt sich der Zeiger meines horizontal zentrierten Dreiecks während der Größenänderung?

Warum verschiebt sich der Zeiger meines horizontal zentrierten Dreiecks während der Größenänderung?

DDD
DDDOriginal
2024-12-21 12:52:10559Durchsuche

Why Does My Horizontally Centered Triangle Pointer Shift During Resizing?

Probleme bei der horizontalen Zentrierung des Dreieckszeigers bei der Größenänderung des Bildschirms

Problembeschreibung

Der Benutzer beabsichtigt, ein Dreieck horizontal zu zentrieren Zeiger innerhalb eines Containerelements. Obwohl dies bei bestimmten Fenstergrößen erfolgreich ist, verschiebt sich der Zeiger aus der Ausrichtung, wenn die Fenstergröße geändert wird.

Lösung

Verstehen des Problems:

Der erste Versuch, den Zeiger mit links zu zentrieren: 48 % positioniert den Zeiger basierend auf seinem linken Rand. Dieser Ansatz berücksichtigt nicht die Breite des Elements, was zu einer Fehlausrichtung führt, wenn sich die Fenstergröße ändert.

Transformation verwenden, um eine Zentrierung zu erreichen:

Um das Dreieck richtig zu zentrieren, ist es Es wird empfohlen, die Transformationseigenschaft zu verwenden:

.triangle {
   position: absolute;
   left: 50%;
   transform: translate(-50%,0);
}

Diese Regel verschiebt die Position des Dreiecks effektiv um 50 % seiner Breite Zentrieren Sie es innerhalb des Containers.

Transformation mit Rotation kombinieren:

In diesem speziellen Szenario wird auf das Dreieckselement auch eine Transformation angewendet: rotation(45deg). CSS-Kaskadenregeln überschreiben jedoch die erste Transformation mit der zweiten und verhindern so die horizontale Zentrierung.

Um dieses Problem zu beheben, verketten Sie die Transformationsfunktionen:

.container::before {
    left: 50%;
    transform: translate(-50%,0) rotate(45deg);
}

Mehrere Transformationsfunktionen können zusammen verwendet werden. Bitte bewerben Sie sich in der Reihenfolge, in der sie aufgeführt sind. In diesem Fall wird zuerst die Übersetzung angewendet, gefolgt von der Drehung.

Vollständiger Codeausschnitt:

body {
    background: #333333;
}

.container {
    width: 98%;
    height: 80px;
    line-height: 80px;
    position: relative;
    top: 20px;
    min-width: 250px;
    margin-top: 50px;
}

.container-decor {
    border: 4px solid #C2E1F5;
    color: #fff;
    font-family: times;
    font-size: 1.1em;
    background: #88B7D5;
    text-align: justify;
}

.container::before {
    top: -33px;
    left: 50%;
    transform: translate(-50%,0) rotate(45deg);
    position: absolute;
    border: solid #C2E1F5;
    border-width: 4px 0 0 4px;
    background: #88B7D5;
    content: '';
    width: 56px;
    height: 56px;
}

<div class="container container-decor">great distance</div>

Das obige ist der detaillierte Inhalt vonWarum verschiebt sich der Zeiger meines horizontal zentrierten Dreiecks während der Größenänderung?. 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