af83

Comment créer un marqueur en full CSS

Voici une astuce simple pour faire des pointes de marqueurs en CSS.

Exemple simple :
 Exemple simple

Pour obtenir ce résultat nous allons de manière simple jouer avec les bordures d'une div.

Étape 1

Pour commencer, nous allons faire une div avec juste une bordure de 20px :

  #pointer { 
    width: 50px; 
    height: 50px; 
    border-color: red; 
    border-style: solid; 
    border-width: 20px; 
  }

Nous obtenons :
 Step 1

Étape 2

Afin de mieux voir l'astuce, nous allons maintenant mettre des couleurs différentes pour chacun des côtés, puis réduire à 0 la hauteur et la largeur de la div :

 #pointer { 
   width: 0; 
   height: 0; 
   border-color: red yellow blue green; 
   border-style: solid; 
   border-width: 20px; 
 }

Cela donne :
 Step 2

Étape 3

Maintenant que nous avons 4 triangles, il suffit tout simplement de changer la couleur en transparent des côtés qui ne nous intéressent pas :

 #pointer { 
   width: 0; 
   height: 0; 
   border-color: red transparent transparent transparent; 
   border-style: solid; 
   border-width: 20px; 
 }

Ainsi, nous n'avons plus que le triangle que l'on voulait :
 Step 3

Exemple avec CSS3

Après avoir vu comment faire des pointes marqueur simples, nous pouvons aller un peu plus loin et ajouter une couche de CSS3. Nous allons ajouter des transformations à notre div afin d'obtenir ce marqueur :
 Exemple CSS3

Dans un premier temps, nous appliquons une rotation de 90° puis nous allons faire une déformation avec scale, ce qui nous donnera un triangle ayant un angle beaucoup plus aigu.

 #pointer { 
   width: 0; 
   height: 0; 
   border-color: red transparent transparent transparent; 
   border-style: solid; 
   border-width: 20px;
   
   transform: rotate(-90deg) scale(3, 1);
   -webkit-transform: rotate(-90deg) scale(3, 1); 
   -moz-transform: rotate(-90deg) scale(3, 1);
  }

blog comments powered by Disqus