Maison > interface Web > tutoriel CSS > Pourquoi mon pointeur triangulaire centré horizontalement se déplace-t-il lors du redimensionnement ?

Pourquoi mon pointeur triangulaire centré horizontalement se déplace-t-il lors du redimensionnement ?

DDD
Libérer: 2024-12-21 12:52:10
original
558 Les gens l'ont consulté

Why Does My Horizontally Centered Triangle Pointer Shift During Resizing?

Centrage horizontal du pointeur triangulaire rencontrant des problèmes lors du redimensionnement de l'écran

Énoncé du problème

L'utilisateur a l'intention de centrer horizontalement un triangle pointeur dans un élément conteneur. Bien qu'il réussisse dans certaines tailles de fenêtre, le pointeur se désaligne lorsque la fenêtre est redimensionnée.

Solution

Comprendre le problème :

La tentative initiale de centrer le pointeur avec la gauche : 48 % positionne le pointeur en fonction de son bord gauche. Cette approche ne tient pas compte de la largeur de l'élément, ce qui entraîne un désalignement lorsque la taille de la fenêtre change.

Utiliser la transformation pour obtenir le centrage :

Pour centrer correctement le triangle, il est recommandé d'utiliser la propriété transform :

.triangle {
   position: absolute;
   left: 50%;
   transform: translate(-50%,0);
}
Copier après la connexion

Cette règle décale la position du triangle de 50% de sa largeur, en le centrant efficacement dans le conteneur.

Combinaison de transformation avec Rotation :

Dans ce scénario spécifique, l'élément triangulaire a également une transformation : rotation(45deg) appliquée. Cependant, les règles en cascade CSS remplacent la première transformation par la seconde, empêchant le centrage horizontal.

Pour résoudre ce problème, enchaînez les fonctions de transformation :

.container::before {
    left: 50%;
    transform: translate(-50%,0) rotate(45deg);
}
Copier après la connexion

Plusieurs fonctions de transformation peuvent être utilisées ensemble, postuler dans l’ordre dans lequel ils sont répertoriés. Dans ce cas, la traduction est appliquée en premier, suivie de la rotation.

Extrait de code complet :

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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal