Maison > interface Web > tutoriel CSS > Pourquoi la mise à l'échelle d'un sous-élément SVG le fait-il « voler depuis le coin supérieur gauche » et comment y remédier ?

Pourquoi la mise à l'échelle d'un sous-élément SVG le fait-il « voler depuis le coin supérieur gauche » et comment y remédier ?

Mary-Kate Olsen
Libérer: 2024-10-29 02:03:29
original
809 Les gens l'ont consulté

Why does scaling an SVG sub-element make it

Problème d'origine de transformation CSS sur les sous-éléments SVG

Problème :

Lors de la tentative pour mettre à l'échelle un sous-élément dans un SVG, l'origine de la transformation est définie sur le point (0,0) du SVG global, ce qui fait que le sous-élément apparaît "voler depuis le coin supérieur gauche" lorsqu'il est animé.

Solution :

Pour définir l'origine de la transformation par rapport au sous-élément spécifique animé, ajoutez la règle CSS suivante :

<code class="css">transform-box: fill-box;</code>
Copier après la connexion

Ceci garantit que la transformation est relative au cadre de délimitation du sous-élément, lui permettant de s'adapter à partir de son centre.

Exemple mis à jour :

<code class="css">@keyframes scaleBox {
  from {transform: scale(0);}
  to {transform: scale(1);}
}
#animated-box {
  transform-box: fill-box;
  animation: scaleBox 2s infinite;
}</code>
Copier après la connexion
<code class="html"><svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="
        width: 195px;
    ">
    <defs>
    <style>.cls-1{fill:#7f7777;}.cls-2{fill:#fff;}
</style>
    </defs>
    <rect class="cls-1" x="0.5" y="0.5" width="99" height="99"></rect>
    <path d="M99,1V99H1V1H99m1-1H0V100H100V0Z"></path>
    <rect id="animated-box" class="cls-2" x="10.5" y="8.5" width="22" height="6"></rect>
</svg></code>
Copier après la connexion

Explication :

La propriété transform-box détermine quelle partie d'un élément est utilisée pour calculer l'origine de la transformation. En le définissant sur fill-box, l'origine est calculée en utilisant le cadre de délimitation du sous-élément au lieu de l'espace de coordonnées du SVG parent.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal