Utilisez CSS pour obtenir un effet de perspective
Aujourd'hui, j'ai eu l'idée d'utiliser CSS pour obtenir l'effet de perspective. Au début, j'ai pensé à notre méthode commune d'ajout d'effets d'ombre, qui est obtenue en utilisant plusieurs divs via offset, mais cela nécessite de nombreux divs, ce qui n'est pas idéal. Ensuite, j'ai pensé à une propriété du CSS : border, qui peut produire un effet diagonal à la jonction des bordures. Ceci peut être réalisé avec deux divs. Examinons d'abord l'effet final , puis analysons le processus de mise en œuvre.
Tout d'abord, regardons comment la bordure génère l'effet diagonal. Ajoutez le code suivant en tête de votre HTML et vous verrez un tel effet .
.border{width:0;height:0;border-width:50px;border-color:#f00 #0f0 #00f #000;border-style:solid;}
Avec la fondation ci-dessus, nous pouvons utiliser deux divs supplémentaires pour obtenir l'effet de perspective.
1. Le code html est le suivant :
2.Code CSS :
.perspective-extérieure{
position : relative ;
width:170px;/*La largeur de l'élément pour obtenir l'effet de perspective + la distance de perspective*/
height:140px;/*La hauteur de l'élément pour obtenir l'effet de perspective + la distance de perspective*/
}
.perspective-intérieure{
bordure : 1px solide #f60 ;
hauteur : 118 px ;
largeur : 148 px ;
couleur d'arrière-plan :#fff;
}
.perspective-r,
.perspective-b{
position : absolue ;
largeur : 0 ;
hauteur:0;
}
.perspective-r{
à droite : 0 ;
height:100px;/*La hauteur de l'élément pour obtenir l'effet de perspective (120px) - (border-top:20px)*/
border-left:20px solide #000;/*distance de perspective droite*/
border-top:20px solid #fff;/*distance de perspective en dessous*/
}
.perspective-b{
bas : 0 ;
width:150px;/*Largeur de l'élément le plus à l'extérieur (170px) - border-left*/
bordure gauche : 20px solide #fff ;
bordure supérieure : 20px solide #000 ;
}
.perspective-outer définit la hauteur et la largeur et les positionne relativement pour garantir que les zones de perspective à droite et en dessous peuvent être positionnées aux positions correspondantes. Les valeurs de hauteur et de largeur sont la hauteur de l'élément pour obtenir la perspective. effet plus la distance de perspective correspondante. .perspective-r n'a besoin que de définir la valeur de hauteur, et sa valeur est la hauteur de .perspective-outer moins border-top .perspective-b n'a besoin que de définir la valeur de largeur, et sa valeur est la largeur de .perspective-. extérieur moins bordure gauche. Les valeurs de largeur de border-top de .perspective-r et border-left de .perspective-b déterminent l'angle de perspective. Les valeurs de largeur de border-left de .perspective-r et border-top de .perspective-b déterminent la distance de perspective. Parmi eux, la couleur de la bordure supérieure de .perspective-r et de la bordure gauche de .perspective-b est la couleur d'arrière-plan de l'élément parent. L'élément parent de ma page de test ici est body, donc il est blanc.
3. Post-scriptum
Cet article n’est qu’un simple test, son but est d’inspirer les autres. Nous ne nous soucions pas de la praticité de cette méthode, mais elle peut au moins nous donner un moyen de résoudre le problème. J'espère que cet article pourra vous être utile.
Texte original : http://www.denisdeng.com/?p=474