L’objectif de cet exercice est de tester les différentes possibilités offertes par le module de transformation 2D de CSS.
Mise en place de l’exercice
Créez un dossier racine nommé transformations.
Créez un fichier transformations.html dans votre dossier racine avec le contenu de base d’une page HTML.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Titre de la page</title> </head> <body> </body> </html>
Créez un nouveau fichier style.css et liez-le à la page HTML.
Code à placer dans l’en-tête de la page HTML en personnalisant la valeur de l’attribut href
si nécessaire afin qu’elle corresponde à l’emplacement et au nom du fichier CSS.
<link rel="stylesheet" type="text/css" href="style.css">
Construisez un set d’exemple correspondant à l’illustration suivante :
<div class="container"> <div>Carré 1</div> <div>Carré 2</div> <div>Carré 3</div> </div>
body { background-color: #efefd0; } .container { border: 1px solid #ff6b35; width: 800px; margin: 20px auto; background-color: #f7c59f; } .container div { display: inline-block; border: 2px solid #004e89; background-color: #b2ebea; width: 100px; height: 100px; margin: 10px; }
Rotations
Effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
<div class="container container-1"> <div>Carré 1</div> <div>Carré 2</div> <div>Carré 3</div> </div>
.container-1 div:nth-of-type(2) { transform: rotate(90deg); }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-2 div:nth-of-type(1) { transform: rotate(180deg); } .container-2 div:nth-of-type(2) { transform: rotate(45deg); } .container-2 div:nth-of-type(3) { transform: rotate(225deg); }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-3 div:nth-of-type(2) { transform: rotate(45deg); transform-origin: 0 0 ; }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-4 div:nth-of-type(2) { transform: rotate(90deg); transform-origin: 100% 0 ; }
Translations
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-5 div:nth-of-type(2) { transform: translate(50px); }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-6 div:nth-of-type(2) { transform: translate(50%,50%); }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-7 div:nth-of-type(2) { transform: scale(0.5); }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-8 div:nth-of-type(2) { transform: scale(1.5); }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-9 div:nth-of-type(2) { transform: scale(0.5, 1); }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-10 div:nth-of-type(1) { transform: scale(0.5); transform-origin: 0 0 ; } .container-10 div:nth-of-type(2) { transform: scale(0.5); transform-origin: 0 100% ; } .container-10 div:nth-of-type(3) { transform: scale(0.5); transform-origin: 100% 100% ; }
Obliques
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-11 div:nth-of-type(2) { transform: skewX(20deg); }
Dupliquez le set d’exemple HTML et effectuez les paramétrages CSS permettant d’obtenir le résultat suivant :
.container-12 div:nth-of-type(2) { transform: skewY(20deg); }
Sauf mention contraire*, l'article Transformations 2D de base en CSS CSS31 et son contenu par Julien Crego sont mis à disposition selon les termes de la licence Creative Commons
Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International
Cette licence vous permet de remixer, arranger, et adapter cette œuvre à des fins non commerciales tant que vous créditez la source en citant le nom des auteurs et que les nouvelles œuvres sont diffusées selon les mêmes conditions.
* Cette notice est intégrée automatiquement à la fin de chaque article de ce site.