formateur informatique

Icônes graphiques Css pour barres de menu

Accueil  >  Technique  >  CSS  >  CSS Astuces  >  Icônes graphiques Css pour barres de menu
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Icônes graphiques Css

Avec cette nouvelle astuce sur les styles Css, nous allons découvrir comment enrichir graphiquement les pages des sites Web. Il s'agit de jeux d'icônes issus d'une Api Google. Et l'intérêt majeur est que ces icônes sont des polices, soit des formes vectorielles. En d'autres termes, vous pouvez créer des pages Html intégralement graphiques mais qui ne pèsent rien, donc qui se chargent vite.

Icônes graphiques avec des polices Web pilotées par les styles Css

Dans l'exemple finalisé illustré par la capture, nous simulons une petite barre de menu. Chaque catégorie est illustrée explicitement par une icône graphique représentative. Au passage de la souris, l'icône change de couleur et s'abaisse quelque peu. Et comme nous l'avons évoqué, pour cette réalisation, aucune image n'est nécessaire.



Page Web au téléchargement
Pour la mise en place de cette astuce, nous suggérons de débuter à partir d'une page Web offrant déjà de nombreux attributs. Le fichier de la page Web est nommé index.htm. Il est accompagné de deux fichiers de type texte et de ses ressources dans les sous dossiers. Ces fichiers de textes hébergent respectivement une référence et un style Css fondamentaux pour l'accomplissement de cette solution.
  • Double cliquer sur le fichier index.htm pour l'exécuter dans le navigateur Web pas défaut,
Barre de menu Html avec des textes à remplacer par des icônes avec les styles Css

Au premier chargement, la surprise est de taille. Certes, la barre demenu est présente. Mais en lieu et place des icônes graphiques, ce sont des termes qui trônent. Et cette indication est plutôt rassurante. Elle signifie qu'à eux seuls, ils doivent représenter les icônes destinées à les remplacer. Mais pour cela, il faut connaître la technique par les styles Css.
  • A la racine du dossier de décompression, cliquer droit sur le fichier index.htm,
  • Dans le menu contextuel qui surgit, choisir de l'ouvrir avec un éditeur comme le Notepad ++,
En haut de la structure Html, vous notez la référence aux feuilles de styles :

...
<link rel="stylesheet" href="css/mes-styles.css">
<link rel="stylesheet" href="css/les-styles.css">
...


La première gère l'organisation globale de la page. Nous allons exploiter la seconde pour donner vie à ces icônes graphiques.

Plus bas dans le code Html et plus spécifiquement dans le calque d'identifiant bMenu, vous notez l'énumération de ces termes représentatifs. Ils sont inscrits dans une balise Html on ne peut plus classique.

...
<div id="auCentre">
<!--
Implémentation
-->
<div id="bMenu">
<i class="materiel icone">home</i>
<i class="materiel icone">search</i>
<i class="materiel icone">cloud</i>
<i class="materiel icone">delete</i>
<i class="materiel icone">menu</i>
<i class="materiel icone">mouse</i>
<i class="materiel icone">person</i>
<i class="materiel icone">close</i>
<i class="materiel icone">refresh</i>
<i class="materiel icone">arrow_back</i>
<i class="materiel icone">arrow_forward</i>
<i class="materiel icone">directions_car</i>
<i class="materiel icone">local_shipping</i>
<i class="materiel icone">local_airport</i>

</div>
 
</div>
...


Chacune de ces balises est associée à deux styles. Le style materiel doit faire référence à l'Api Google pour transformer ces mots clés en icônes, tout en leur attribuant certains réglages. Puis, nous implémenterons le style icone pour faire réagir ces éléments graphiques au passage de la souris.
  • A la racine du dossier de décompression, double cliquer sur le sous dossier Css,
  • Dès lors, cliquer droit sur la feuille de styles les-styles.css,
  • Dans le menu contextuel, choisir de l'ouvrir avec un éditeur comme le Notepad ++,
Deux styles sont déjà présents, bMenu et icone. Ils se chargent de réglages de base.



Référence à l'API des icônes
Maintenant, par le biais d'une règle Css, nous devons pointer en ligne sur la librairie archivant ces icônes représentées par ces mots clés.
  • A la racine du dossier de décompression, double cliquer sur le fichier reference-api.txt,
  • Dès lors, réaliser le raccourci CTRL + A pour sélectionner toute la règle,
  • La copier à l'aide du raccourci clavier CTRL + C,
  • Revenir dans l'éditeur Notepad ++ sur la feuille de styles,
  • Coller la règle par exemple entre le style bMenu et le style icone,
@font-face
{
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/materialicons...) format('woff2');
}


Les attributs font-family et src retiennent notre attention. Le premier définit le nom de la galerie souhaitée (Material Icons) pour créer ces icônes. Le deuxième indique l'emplacement de la source hébergeant cette galerie. Avec quelques recherches sur le Web, nous pouvons très vite connaître les autres noms de librairies à disposition.

Bien sûr, cette règle sert de référence à exploiter, ce qui n'est pas encore le cas. C'est la raison pour laquelle, aucune différence ne serait à observer sur la page Web, si d'aventure vous actualisiez le cache du navigateur.

Liaison avec la librairie des icônes
C'est le style materiel affecté aux éléments Html des mots clés qui doit maintenant se charger d'exploiter cette règle pour profiter de la transformation graphique.
  • A la racine du dossier de décompression, double cliquer sur le fichier style-materiel.txt,
  • Sélectionner l'intégralité du style avec le raccourci clavier CTRL + A,
  • Le copier avec le raccourci clavier CTRL + C,
  • Revenir sur la feuille de styles et le coller après la règle, juste avant le style icone,
.materiel
{
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 40px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
}


Tout d'abord, vous notez que le lien est établi avec la règle par l'attribut font-family. Il désigne la librairie précédemment déclarée à exploiter. C'est un peu comme le principe de l'instanciation de classe en programmation orientée objets. Et comme vous pouvez le voir, la majorité des réglages s'opère sur le texte, notamment par le biais d'attributs de police. C'est ce que nous annoncions, ces icônes bien que graphiques en apparence, sont ni plus ni moins que des éléments de texte spécifiques. C'est la raison pour laquelle elles sont précieuses pour enrichir les pages Web tout en optimisant les ressources dont notamment les temps de téléchargement. Mais il nous reste encore à constater l'impact.
  • Enregistrer les modifications (CTRL + S) et revenir sur le navigateur Web,
  • Actualiser son cache avec le raccourci clavier CTRL + F5,
Textes transformés en icônes graphiques sur page Html par les styles Css

Comme vous pouvez l'apprécier, le résultat est plutôt magique. Une règle et un style ont suffi à complètement métamorphoser la présentation. Et encore, de nombreux attributs ne sont pas nécessaires dans le style que nous avons collé.

Tout en bas du style, les attributs direction, word-wrap et white-space peuvent être supprimés. Il s'agit de réglages de police comme la direction du texte, du gauche à droite par exemple et de suppression des sauts de ligne et des blancs. Avec les icônes, ces paramétrages ne sont plus d'actualité. De même, au-dessus de l'attribut display, les attributs text-transform et letter-spacing peuvent être éliminés. En effet, l'espacement entre les caractères ou encore la décoration du texte n'importe plus. Enfin, l'attribut font-weight pour le style gras peut être effacé. Il en va de même pour les attributs font-style et font-weight dans la règle. Il en résulte une construction largement épurée et une fois encore la preuve que grâce à ces librairies, la transformation en pages graphiques est un jeu d'enfants :

@font-face
{
font-family: 'Material Icons';
src: url(https://fonts.gstatic.com/s/materialicons/...) format('woff2');
}

.materiel
{
font-family: 'Material Icons';
font-style: normal;
font-size: 40px;
line-height: 1;
display: inline-block;
}


Pour information, nous avons conservé l'attribut display réglé sur la valeur inline-block afin de conserver les éléments graphiques les uns à côté des autres. Si vous actualisez la page Web, vous constatez qu'aucune différence n'est à observer.



Animation des icônes
Désormais, nous souhaitons faire réagir ces icônes au passage de la souris. Elles doivent se parer de rouge et abaisser leurs positions. Mais nous souhaitons que le changement de couleur se fasse progressivement. Nous avons donc besoin de gérer une transition Css comme nous l'avons appris dans les volets précédents. Et c'est le second style nommé icone qui est concerné. Il contribue déjà à déterminer l'état au départ. Avec l'attribut hover en style dérivé, il doit définir l'état de fin.
  • A la fin du style icone, ajouter l'instruction Css suivante :
.icone
{
margin:5px;
cursor:pointer;
transition:color 1s;
}


Nous indiquons donc que la transition doit s'opérer sur une durée d'une seconde et doit concerner le changement de couleur (color). Il nous reste donc à définir l'état de chaque icône après le passage de la souris.
  • Créer le style dérivé suivant :
.icone:hover
{

}


hover est un gestionnaire d'événements. C'est lui qui va détecter le survol de la souris et déclencher les réglages que nous devons opérer dans ce nouveau style.
  • Entre les bornes de ce nouveau style, ajouter les instructions Css suivantes :
.icone:hover
{
color:red;
position:relative;
top:10px;

}


Nous changeons la couleur pour un rouge. Nous modifions l'attribut position pour pouvoir déplacer l'icône. De fait, nous l'abaissons de 10 pixels au passage de la souris grâce à l'attribut top.
  • Enregistrer les modifications et revenir sur le navigateur Web,
  • Actualiser son cache avec le raccourci clavier CTRL + F5,
  • Puis, passer la souris sur plusieurs icônes,
Changement de position et de couleur des icônes graphiques au survol de la souris avec les styles Css

Comme vous pouvez le voir, les icônes réagissent parfaitement au passage de la souris. En même temps qu'elles s'abaissent, leur changement de couleur est opéré progressivement sur une durée d'une seconde. Elles sont donc explicitement mises en valeur. Il ne resterait plus qu'à créer les liens des pages concernées et à définir des info-bulles explicatives.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn