Comment appliquer plusieurs transforme en CSS?
À l'aide de CSS, comment puis-je appliquer plus d'une transform
?
Exemple: Dans la suite, seule la traduction est appliqué, pas la rotation.
li:nth-child(2) {
transform: rotate(15deg);
transform: translate(-20px,0px);
}
Vous devez vous connecter pour publier un commentaire.
Vous devez les mettre sur une ligne comme ceci:
Lorsque vous avez plusieurs de transformer les directives, seul le dernier sera appliqué. C'est comme n'importe quel autre attribut CSS.
Garder à l'esprit plusieurs de transformer une ligne directives sont appliquée à partir de la droite vers la gauche.
Ce:
transform: scale(1,1.5) rotate(90deg);
et:
transform: rotate(90deg) scale(1,1.5);
sera pas produisent le même résultat:
CSS:
HTML:
transform: scale(1,1.5) rotate(90deg);
et :transform: rotate(90deg) scale(1,1.5);
sera pas produisent le même résultat: jsfiddle.net/852hzq9wtransform: scale(1,1.5) rotate(90deg);
, la rotation arriverait-il avant de l'échelle.Je suis en ajoutant cette réponse n'est pas parce qu'il est susceptible d'être utile, mais juste parce que c'est vrai.
En plus de l'utilisation de l'existant réponses expliquant comment faire plus d'une traduction en utilisant une chaîne, vous pouvez également construire la matrice de 4x4 vous-même
J'ai attrapé l'image suivante de certains site au hasard j'ai trouvé tout googler qui montre matrices de rotation:
Rotation autour de l'axe x:
La Rotation autour de l'axe y:
La Rotation autour de l'axe z:
Je ne pouvais pas trouver un bon exemple de la traduction, donc en supposant que je me souviens que/comprendre ce droit, traduction:
Voir plus à la Article de wikipédia sur la transformation ainsi que le Pragamatic CSS3 tutoriel qui explique plutôt bien. Un autre guide que j'ai trouvé qui explique arbitraire de rotation des matrices est Egon de Rath notes sur les matrices
De multiplication de matrice travaille entre ces matrices 4x4 bien sûr, afin d'effectuer une rotation suivie d'une translation, vous effectuez la matrice de rotation et de le multiplier par la traduction de la matrice.
Cela peut vous donner un peu plus de liberté pour l'obtenir juste, et sera aussi à peu près complètement impossible pour quiconque de comprendre ce qu'il fait, y compris vous dans cinq minutes.
Mais, vous savez, il fonctionne.
Edit: je viens de réaliser que j'ai manqué de mentionner probablement les plus importantes et l'utilisation pratique de ce qui est à incrémentielle de créer des transformations 3D via JavaScript, où les choses se font un peu plus de sens.
@keyframes
. Chromium71 ne semble pas être en mesure de gérer l'animation (plutôt que de la transition) de multiples transformations, mais sans doute pourrait animer une simple transformation de la matrice.Vous pouvez également appliquer plusieurs transformations à l'aide d'une couche supplémentaire de balisage par exemple:
Cela peut être très utile lors de l'animation d'éléments avec transforme à l'aide de Javascript.
transform-style: preserve-3d
Vous pouvez appliquer plus d'une transformation comme ceci:
Un certain temps dans l'avenir, on peut l'écrire comme ceci:
Cela va devenir particulièrement utile lors de l'application d'un cours particulier sur un élément:
Cette syntaxe est définie dans l'en-cours CSS Transforme spécification de Niveau 2, mais ne peut pas trouver quelque chose sur l'actualité de prise en charge du navigateur, puis d'autres chrome canary. Espère qu'un jour je reviendrai et mise à jour prise en charge du navigateur ici 😉
Trouvé l'info dans cet article qui vous voudrez peut-être consulter concernant les solutions de contournement pour les navigateurs actuels.
Tout simplement à partir de là que dans CSS, si vous répétez les 2 valeurs ou plus, toujours dernier est appliqué, à moins d'utiliser
!important
tag, mais en même temps, éviter d'utiliser!important
autant que vous le pouvez, de sorte que, dans votre cas, c'est le problème, donc, la deuxième transformer remplacer le premier dans ce cas...Alors, comment vous pouvez faire ce que vous voulez, alors?...
Ne vous inquiétez pas, transformer accepte plusieurs valeurs en même temps... Donc ce code ci-dessous:
Si vous aimez jouer avec les transformer exécuter l'iframe de MDN ci-dessous:
HTML:
Regardez le lien ci-dessous pour plus d'info:
<< CSS transform >>
Transformer Rotation et translation dans une seule ligne de css:-Comment?
CSS:
HTML:
Un moyen simple d'appliquer de multiples transformer, c'est ce
Mais aussi n'oubliez pas que vous devez ajouter un préfixe pour le faire fonctionner dans tous les navigateurs comme certains browers comme safari, c'est à dire pas en charge les transformer propriété sans préfixe.
Par exemple
Je suis en utilisant enjoycss outil
http://enjoycss.com/5C#transform
il génère le code css pour les paramètres de transformation en utilisant l'interface graphique pour générer le transformer le code 😉