Heim > Web-Frontend > CSS-Tutorial > Wie kann man ein dreieckiges Element während der Fenstergrößenänderung perfekt horizontal zentrieren?

Wie kann man ein dreieckiges Element während der Fenstergrößenänderung perfekt horizontal zentrieren?

Mary-Kate Olsen
Freigeben: 2024-12-28 22:33:17
Original
371 Leute haben es durchsucht

How to Perfectly Center a Triangular Element Horizontally During Window Resizing?

Aufrechterhaltung der horizontalen Zentrierung eines Elements während der Größenänderung des Fensters

Problem:
Horizontale Zentrierung eines Elements durch CSS kann schwierig sein, wenn die Fenstergröße geändert wird, insbesondere bei Elementen mit einer Dreiecksform Form.

Lösung des Problems:
Um sicherzustellen, dass ein Element unabhängig von der Fenstergröße horizontal zentriert bleibt, ist es wichtig, die richtige CSS-Eigenschaft zu verwenden und zu verstehen, wie die Elementpositionierung funktioniert. Während die Einstellung „Links: 50 %“ intuitiv erscheinen mag, positioniert sie das Element tatsächlich anhand seines linken Randes und nicht anhand der Mitte.

Lösung: Transformieren und übersetzen
Um eine echte horizontale Zentrierung zu erreichen , ist es üblich, die Eigenschaft transform:translate() zu verwenden. Diese Eigenschaft weist das Element an, sich um einen bestimmten Prozentsatz seiner Breite nach hinten zu verschieben und es so effektiv auf der gewünschten Achse zu zentrieren.

Transformation auf vorhandenen Code anwenden
Im bereitgestellten Code Das Dreieckselement ist zunächst mit links: 48 % positioniert, wodurch es nahe der Mitte, aber falsch platziert wird. Um dies anzupassen, können wir die Regel transform: translator(-50%, 0) verwenden, um das Element um 50 % seiner Breite nach hinten zu verschieben und so sicherzustellen, dass es perfekt zentriert ist.

Transformationen verketten
Der bereitgestellte Code enthält jedoch auch eine Eigenschaft „transform: rotation(45deg)“, die vor „transform: translator(-50 %, 0)“ angewendet wird. Dies führt dazu, dass die transform:translate()-Regel aufgrund der CSS-Kaskade ignoriert wird.

Um dies zu berücksichtigen, können wir beide Transformationen kombinieren, indem wir die Fähigkeit der transform-Eigenschaft nutzen, Funktionen zu verketten. Die endgültige CSS-Regel für das Dreieckselement lautet:

.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;
}
Nach dem Login kopieren

Durch die Verkettung der Transformationsfunktionen in dieser Reihenfolge (zuerst translator(), gefolgt von rotation()) stellen wir sicher, dass das Element zuerst zurückverschoben wird um 50 % seiner Breite und dann um 45 Grad gedreht. Dadurch wird sichergestellt, dass das Dreieck auch dann horizontal zentriert bleibt, wenn die Fenstergröße geändert wird.

Das obige ist der detaillierte Inhalt vonWie kann man ein dreieckiges Element während der Fenstergrößenänderung perfekt horizontal zentrieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage