Approche différente : CSS triangles avec transformer tourner
De forme triangulaire est assez facile à faire en utilisant cette technique. Pour les personnes qui préfèrent voir une animation expliquant comment cette technique fonctionne, vous pouvez suivre ce lien :
De l'Animation, de la façon de faire un CSS triangle avec transformer tourner
DÉMO de triangles faite avec de la transformer tourner
Sinon, voici une explication plus détaillée en 4 actes (ce n'est pas une tragédie) comment faire un rectangle isocèle triangle rectangle avec un seul élément (remarque: pour les triangles isocèles et de fantaisie, vous pouvez voir l'étape 4):
Clause de non-responsabilité : dans les extraits suivants, le vendeur préfixes ne sont pas inclus. ils sont inclus dans le codepen démos
Code HTML pour l'explication suivante:
<div class="tr"></div>
ÉTAPE 1 : Faire une div
Facile, il suffit de faire shure qu' width = 1.41 x height
. Vous pouvez utiliser n'importe techinque (voir ici), y compris l'utilisation de pourcentages et de rembourrage-bas pour maintenir le ratio d'aspect et prendre un réactif triangle. Dans l'image suivante, la div a un jaune d'or de la frontière.
Dans ce div, insérer un pseudo-élément et lui donner 100% de la largeur et de la hauteur de parent. Le pseudo-élément a un fond bleu dans l'image ci-dessous.
À ce stade, nous avons ce CSS :
.tr{
width:30%;
padding-bottom:21.27%; /* = width / 1.41 */
position:relative;
}
.tr:before{
content:'';
position:absolute;
top:0; left:0;
width:100%; height:100%;
background : #0079C6;
}
ÉTAPE 2 : nous allons tourner
Tout d'abord, le plus important : définir une transformation de l'origine. La valeur par défaut d'origine est au centre de la pseudo-élément et nous en avons besoin, en bas à gauche. En ajoutant cette CSS pour le pseudo-élément :
transform-origin:0 100%;
ou transform-origin: left bottom;
Nous pouvons maintenant faire pivoter le pseudo élément de 45 degrés dans le sens horaire avec transform : rotate(45deg);
À ce stade, nous avons ce CSS :
.tr{
width:30%;
padding-bottom:21.27%; /* = width / 1.41 */
position:relative;
}
.tr:before{
content:'';
position:absolute;
top:0; left:0;
width:100%; height:100%;
background : #0079C6;
transform-origin:0 100%;
transform: rotate(45deg);
}
ÉTAPE 3 : cacher
Pour masquer les parties non désirées de la pseudo-élément (tout ce qui déborde de la div avec le cadre jaune) il vous suffit de définir overflow:hidden;
sur le conteneur. après le retrait de la bordure jaune, vous obtenez... un TRIANGLE! :
DÉMO
CSS :
.tr{
width:30%;
padding-bottom:21.27%; /* = width / 1.41 */
position:relative;
overflow:hidden;
}
.tr:before{
content:'';
position:absolute;
top:0; left:0;
width:100%; height:100%;
background-color : #0079C6;
transform-origin:0 100%;
transform: rotate(45deg);
}
ETAPE 4 : aller plus loin...
Comme montré dans la démo, vous pouvez personnaliser les triangles :
- Rendre plus mince ou plus plate en jouant avec
skewX()
.
- Faire le point à gauche, à droite ou tout autre direction en jouant avec la transformation orign et le sens de rotation.
- Faire une réflexion avec la 3D propriété transform.
- Donner le triangle des frontières
- Mettre une image à l'intérieur du triangle
- Beaucoup plus...
Pourquoi utiliser cette technique?
- Triangle peut facilement être réactif
- Vous pouvez faire un triangle avec bordure
- Vous pouvez maintenir les limites du triangle. Cela signifie que vous pouvez déclencher l'état de pointage ou cliquez sur l'événement que lorsque le curseur est à l'intérieur du triangle de DÉMONSTRATION , cela peut s'avérer très pratique dans certaines situations, comme ce un.
- Vous pouvez faire des effets de fantaisie, comme des reflets
- Il vous aidera à comprendre 2d et 3d des propriétés de transformation
Pourquoi ne pas utiliser cette technique?
- Le principal inconvénient est la compatibilité du navigateur, la transformation 2d propriétés sont prises en charge par IE9+ et, par conséquent, vous ne pouvez pas utiliser cette technique si vous comptez sur le soutien de IE8. Voir CanIuse pour plus d'info. Pour certains effets de fantaisie à l'aide de transformation 3d comme la réflexion, à l'appui de navigateur IE10+ (voir canIuse pour plus d'info).
- Vous n'avez pas besoin de quelque chose de sensible et un simple triangle est très bien pour vous, alors vous devriez aller pour le cadre technique expliquée ici : meilleure compatibilité avec les navigateurs et plus facile à comprendre grâce à la magnifique posts ici.