Transformation CSS3

1. Connaissances de base :
La transformation 2D peut modifier les attributs de position, de taille et de forme de l'élément spécifié.
Pour implémenter la conversion 2D, vous devez utiliser l'attribut transform. Les valeurs d'attribut sont quelques fonctions de conversion. Elles sont présentées ci-dessous.
2. Fonction de conversion :
1. Fonction translation() :
Cette fonction peut être basée sur les paramètres Implémente l'effet de mouvement de l'élément spécifié.
a deux paramètres, le premier paramètre spécifie la distance de déplacement dans la direction horizontale et le deuxième paramètre spécifie la distance de déplacement dans la direction verticale.
Exemple de code :

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http:/
/" />
<title>php中文网</title>
<style type="text/css">
#box{
  width:400px;
  height:400px;
  background:green;
}
#box .demo{
  width:50px;
  height:50px;
  background:red;
  transform:translate(50px,50px);
  -ms-transform:translate(50px,50px);/*IE9 */
  -webkit-transform:translate(50px,50px);/*Safari and Chrome*/
  -o-transform:translate(50px,50px);/* Opera*/
  -moz-transform:translate(50px,50px);/* Firefox */
}
</style>
</head>
<body>
<div id="box">
  <div class="demo"></div>
</div>
</body>
</html>

Le code ci-dessus peut définir le déplacement du div à 50px dans les directions horizontale et verticale.
Remarque spéciale : s'il n'y a qu'un seul paramètre, alors ce paramètre s'applique aux orientations horizontale et verticale ; si le paramètre est une valeur en pourcentage, la taille de référence est les dimensions de longueur et de largeur correspondantes de l'élément lui-même ; aux fonctions suivantes.
Fonction 2.rotate() :
Cette fonction peut spécifier l'angle de rotation dans le sens horaire de l'élément. S'il s'agit d'une valeur négative, il s'agit d'une rotation dans le sens inverse des aiguilles d'une montre.
Exemple de code :

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://ask.php.cn/" />
<title>php中文网</title>
<style type="text/css">
#box{
  width:400px;
  height:400px;
  background:green;
}
#box .demo{
  width:50px;
  height:50px;
  background:red;
  transform:rotate(60deg);
  -ms-transform:rotate(60deg);/* IE 9 */
  -webkit-transform:rotate(60deg);/* Safari and Chrome */
  -o-transform:rotate(60deg);/* Opera */
  -moz-transform:rotate(60deg);
}
</style>
</head>
<body>
<div id="box">
  <div class="demo"></div>
</div>
</body>
</html>

Le code ci-dessus peut faire pivoter l'élément div de 60 degrés dans le sens des aiguilles d'une montre.
Fonction 3.scale() :
Cette fonction peut obtenir l'effet de mise à l'échelle de l'élément spécifié.
a deux paramètres, le premier paramètre est le facteur d'échelle de largeur et le second est le facteur d'échelle de hauteur.
Exemple de code :

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://ask.php.cn/" />
<title>php中文网</title>
<style type="text/css">
#box{
  width:400px;
  height:400px;
  background:green;
  margin:100px;
}
#box .demo{
  width:50px;
  height:50px;
  background:red;
  transform:scale(2,3);
  -ms-transform:scale(2,3);/* IE 9 */
  -webkit-transform:scale(2,3);/* Safari 和 Chrome */
  -o-transform:scale(2,3);/* Opera */
  -moz-transform:scale(2,3);/* Firefox */
}
</style>
</head>
<body>
<div id="box">
  <div class="demo"></div>
</div>
</body>
</html>

Le code ci-dessus peut doubler la largeur du div et tripler la hauteur.
Fonction 4.skew() :
Cette fonction peut définir l'angle de distorsion de l'élément spécifié.
a deux paramètres, le premier paramètre définit la distorsion dans le sens horizontal et le deuxième paramètre définit la distorsion dans le sens vertical.
Si le deuxième paramètre est omis, la valeur par défaut est 0.
Exemple de code 1 :

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://ask.php.cn/" />
<title>php中文网</title>
<style type="text/css">
#box{
  position:relative;
  height:200px;
  width:200px;
  margin-top:150px;
  margin-left:150px;
  border:1px solid black;
}
#inner{
  padding:50px;
  position:absolute;
  border:1px solid black;
  background-color:yellow;
  transform-origin:40 40;
  font-size:12px;
   
  transform:skew(45deg);
  -ms-transform:skew(45deg);/*IE9*/
  -webkit-transform:skew(45deg);/*Safari and Chrome*/
  -o-transform:skew(45deg);/*Opera*/
  -moz-transform:skew(45deg);/*Firefox*/
}
table{
  font-size:12px;
  width:300px;
  margin-left:120px;
}
.left{text-align:right}
</style>
<script type="text/javascript">
function changeRot(value){
  var oinner=document.getElementById('inner');
  var opersp=document.getElementById('persp');
  oinner.style.transform="skew(" + value + "deg)";
  oinner.style.msTransform="skew(" + value + "deg)";
  oinner.style.webkitTransform="skew(" + value + "deg)";
  oinner.style.MozTransform="skew(" + value + "deg)";
  oinner.style.OTransform="skew(" + value + "deg)";
  opersp.innerHTML=value + "deg";
}
window.onload=function(){
  var range=document.getElementById("range");
  range.onmousemove=function(){
    changeRot(this.value);
  }
}
</script>
</head>
   
<body>
<div id="box">
  <div id="inner">php中文网</div>
</div>
<table>
  <tr>
    <td class="left">扭曲:</td>
    <td><input type="range" min="-360" max="360" id="range" value="45"/></td>
  </tr>
  <tr>
    <td class="left">skew:</td>
    <td>(<span id="persp">45deg</span>)</td>
  </tr>
</table>
</body>
</html>

Le code ci-dessus peut tester la distorsion dans la direction horizontale. Faites glisser la barre de défilement pour tester, et vous pouvez le voir clairement d'un coup d'œil.
Exemple de code deux :

<!DOCTYPE html>
<html> 
<head> 
<meta charset=" utf-8"> 
<meta name="author" content="http://ask.php.cn/" /> 
<title>php中文网</title> 
<style type="text/css"> 
#box{ 
  position:relative; 
  height:200px; 
  width:200px; 
  margin-top:150px; 
  margin-left:150px; 
  border:1px solid black; 
} 
#inner{ 
  padding:50px; 
  position:absolute; 
  border:1px solid black; 
  background-color:yellow; 
  transform-origin:40 40; 
  font-size:12px; 
   
  transform:skew(0,45deg);
  -ms-transform:skew(0,45deg);/*IE9*/
  -webkit-transform:skew(0,45deg);/*Safari and Chrome*/
  -o-transform:skew(0,45deg);/*Opera*/
  -moz-transform:skew(0,45deg);/*Firefox*/
} 
table{ 
  font-size:12px; 
  width:300px; 
  margin-left:120px; 
} 
.left{text-align:right} 
</style> 
<script type="text/javascript"> 
function changeRot(value){ 
  var oinner=document.getElementById('inner'); 
  var opersp=document.getElementById('persp'); 
  oinner.style.transform="skew(0," + value + "deg)"; 
  oinner.style.msTransform="skew(0," + value + "deg)"; 
  oinner.style.webkitTransform="skew(0," + value + "deg)"; 
  oinner.style.MozTransform="skew(0," + value + "deg)"; 
  oinner.style.OTransform="skew(0," + value + "deg)"; 
  opersp.innerHTML=value + "deg"; 
}
window.onload=function(){
  var range=document.getElementById("range");
  range.onmousemove=function(){
    changeRot(this.value);
  }
}
</script> 
</head> 
   
<body> 
<div id="box"> 
  <div id="inner">php中文网</div> 
</div> 
<table> 
  <tr> 
    <td class="left">扭曲:</td> 
    <td><input type="range" min="-360" max="360" id="range" value="45"/></td> 
  </tr> 
  <tr> 
    <td class="left">skew:</td> 
    <td>(<span id="persp">45deg</span>)</td> 
  </tr> 
</table> 
</body> 
</html>

Le code ci-dessus peut tester la distorsion dans la direction verticale. Faites glisser la barre de défilement pour tester, et vous pouvez le voir clairement en un coup d'œil.
Fonction 5.matrix() :
Spécifiez une matrice de transformation sous la forme d'une valeur à six (a, b, c, d, e, f) La transformation 2D équivaut à appliquer directement une matrice de transformation [ab c d e f].

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网</title> 
<style> 
div
{
width:100px;
height:75px;
background-color:red;
border:1px solid black;
}
div#div2
{
transform:matrix(0.866,0.5,-0.5,0.866,0,0);
-ms-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* IE 9 */
-webkit-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Safari and Chrome */
}
</style>
</head>
<body>
<div>Hello. This is a DIV element.</div>
<div id="div2">Hello. This is a DIV element.</div>
</body>
</html>

Utilisez la méthode Matrix() pour faire pivoter l'élément div de 30°

Formation continue
||
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://ask.php.cn/" /> <title>php中文网</title> <style type="text/css"> #box{ position:relative; height:200px; width:200px; margin-top:150px; margin-left:150px; border:1px solid black; } #inner{ padding:50px; position:absolute; border:1px solid black; background-color:yellow; transform-origin:40|40; font-size:12px; transform:skew(45deg); -ms-transform:skew(45deg);/*IE9*/ -webkit-transform:skew(45deg);/*Safari and Chrome*/ -o-transform:skew(45deg);/*Opera*/ -moz-transform:skew(45deg);/*Firefox*/ } table{ font-size:12px; width:300px; margin-left:120px; } .left{text-align:right} </style> <script type="text/javascript"> function changeRot(value){ var oinner=document.getElementById('inner'); var opersp=document.getElementById('persp'); oinner.style.transform="skew(" + value + "deg)"; oinner.style.msTransform="skew(" + value + "deg)"; oinner.style.webkitTransform="skew(" + value + "deg)"; oinner.style.MozTransform="skew(" + value + "deg)"; oinner.style.OTransform="skew(" + value + "deg)"; opersp.innerHTML=value + "deg"; } window.onload=function(){ var range=document.getElementById("range"); range.onmousemove=function(){ changeRot(this.value); } } </script> </head> <body> <div id="box"> <div id="inner">php中文网</div> </div> <table> <tr> <td class="left">扭曲:</td> <td><input type="range" min="-360" max="360" id="range" value="45"/></td> </tr> <tr> <td class="left">skew:</td> <td>(<span id="persp">45deg</span>)</td> </tr> </table> </body> </html>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel