L'île Avalon > Effet "Tooltip"
Effet "Tooltip"Vous allez me dire :
Et bien un effet tooltip est une boîte de commentaire qui va s'afficher lorsque votre souris viendra survoler un lien ou une image. Par exemple si vous survolez le lien ci-contre vous aurez un effet tooltip : Survolez-moiC'est magique, voici un texte qui s'affiche au survol de votre souris.... L'effet en lui-même peut être très simple et ne contenir que du texte, ou au contraire être des plus compliqué avec une mise en page bien spécifique et éventuellement l'insertion d'une image. Par exemple, un effet tooltip bien connu des joueurs de World of Warcraft est le "wowloot", un effet qui vient afficher la description d'une pièce d'équipement telle qu'on peut la voir au sein même du jeu, exemple : Epée cristalforgéeEpée cristalforgée
Il existe plusieurs façon de mettre en place un effet de tooltip sur un site, une de ces méthodes est basée sur l'utilisation de fonctions Javascript, une autre est entièrement en feuille de style (CSS). N'étant pas fan du Javascript du fait que le visiteur d'un site peut le désactiver, ma préférence va donc vers la méthode CSS et c'est donc de cette méthode qu'il va être question dans cet article... Le code à insérer dans une pageChose peut commune, on va commencer par la fin. Voici le code que vous devez intégrer dans votre page HTML afin qu'un lien se transforme en un Tooltip : <a class="tooltip" href="#">Libellé du lien affichant le Tooltip Exemple : Analysons maintenant le source ci-dessus :
La feuille CSSLe code qui suit peut être inséré au sein de votre balise d'entête (HEAD) ou importé : a.tooltip em { On associé la propriété display:none à la balise EM afin qu'elle soit masquée dans sont état normal. Et on lui associé la propriété display:block lors du survol de la balise HREF. Ces deux instructions suffisent pour créer l'effet de survol, reste ensuite à définir les propriétés de mise en page et de positionnement. L'objet EM est en positionnement absolute, notez qu'il faudra associer le positionnement relative au tag HREF afin que le tag EM se positionne bien par rapport à son parent HREF. Les propriété top et left vont placer l'objet. Notez que suivant si vous voulez que l'objet se place sous le lien ou au dessus, à gauche ou à droite, il vous faudra définir respectivement les propriétés top, bottom, right ou left. Il n'est pas utile de toutes les définir, deux suffisent. Il est important de définir une largeur à votre objet (width). Enfin, les propriétés de padding, border et background sont purement esthétique. Avec le source ci-dessus vous avez le principal pour mettre en place un effet de tooltip, mais on peut aller plus loin... Une "flèche"Il peut être des plus esthétique d'ajouter une petite flèche sur notre tooltip et qui va pointer sur le lien. Pour cela, il nous faut une image : Ensuite il nous faut une instruction HTML pour l'insérer au sein de notre tooltip. On va utiliser le tag SPAN que l'on intégrer comme ci-dessous : <a class="tooltip" href="#">Libellé du lien affichant le Tooltip Puis vient la source CSS correspondant à notre SPAN : a.tooltip:hover em span { Le positionnement est en absolute et se fait par rapport à la balise EM. Les propriétés top, left, bottom et right vous nous permettre de placer l'image au sein de la tooltip. Ces propriétés vont dépendre de l'image en elle-même et de la tooltip, il vous faudra donc chercher un peu :) Les propriétés height et width définissent la taille de l'image. C'est important sinon elle risque d'être tronquée voir de ne pas s'afficher. Enfin, la propriété background affiche l'image. Une notion d'écartement entre le tooltip et son lienVoici une notion qui peut s'avérer utile de connaître : Lorsque la souris survole le lien, le tooltip s'affiche. Ensuite, si on passe la souris sur le Tooltip lui-même il reste affiché. Pourtant, il se peut que cela ne soit pas toujours le cas. Pourquoi ? Et bien c'est du à un écart qui se trouve entre le tooltip et son lien. Cet écart peut être créé quand on positionne le tooltip.
La gène vient principalement du fait que si l'on veut intégrer des liens dans notre Tooltip comme sur cet exemple : Survolez-moiUne liste de liens :, le visiteur ne pourra jamais accéder à ces liens car le Tooltip disparaîtra... Il n'y a pas de solution miracle pour éviter cet écart, soit le visiteur est rapide et accède au Tooltip avant qu'il ne disparaisse (Mouai...), soit vous faite en sorte que cet écart soit réduit à zéro évitant alors tout problème. Si vous rencontrez ce problème et que vous ne pouvez pas le solutionner simplement, il y a malgré tout une astuce. Cette astuce consiste à exploiter le principe du pointeur (Cf. Une "flèche"), soit, si vous l'utilisez déjà, en augmentant sa largeur afin qu'il recouvre la zone d'espacement, soit en lui attribuant un pixel transparent et en le dupliquant sur toute la surface de la zone d'espacement. Ainsi le pointeur aura pour effet de cacher la zone d'espace et d'éviter tout problème. Compatibilité avec les navigateurs, et la Tooltip "sort du site"Dès lors, vous savez créer une Tooltip en CSS et vous pouvez maintenant utiliser ce code afin de l'adapter à votre site. Malgré tout, il subsiste encore quelques petites choses à savoir... Le premier point n'est autre que la compatibilité de votre Tooltip avec des navigateurs d'ancienne génération. Une telle Tooltip fonctionne très bien avec Firefox, IE6 et plus, mais peut rencontrer des problème avec des navigateurs plus anciens. Donc si vous craignez de rencontrer des problèmes de compatibilité je vous recommande d'opter pour la solution Javascrip et non CSS, mais dites-vous que de nos jour les navigateurs plus ancien qu'IE6 et Firefox se font de plus en plus rares... Le second point est que notre Tooltip ne prend pas en compte son positionnement par rapport au texte où il se trouve. Il y a donc un risque de voir la Tooltip sortir de la page, se qui aura bien évidemment pour effet de la rendre illisible. Là encore on peu gérer ce problème avec Javascript, mais dans le cadre du CSS il faut passer par une astuce qui consiste à surcharger notre classe "Tooltip" avec une classe de positionnement. Surcharge par classe de positionnementDu côté du HTML, cela se présente ainsi : Pour un alignement sur la gauche : <a class="tooltip GAUCHE" href="#">Libellé du lien affichant le Tooltip Pour un alignement sur la droite : <a class="tooltip DROITE" href="#">Libellé du lien affichant le Tooltip Et niveau CSS on obtient ceci : a.GAUCHE:hover em { a.DROITE:hover em { Ainsi, si vous ne surchargez pas votre classe "Tooltip" cette dernière gardera l'alignement par défaut définit dans la classe elle-même, par contre si vous la surchargez alors l'alignement par défaut sera remplacé par le nouvelle alignement définit dans les classes GAUCHE et DROITE. Se sera à vous ensuite d'associer la classe d'alignement qui va bien au moment de l'insertion de votre Tooltip dans un texte. Notez que si vous associez un pointeur à l'aide d'un SPAN à votre Tooltip, il vous faudra gérer son positionnement dans les différent cas d'alignement sur la gauche ou la droite... Notez aussi que j'ai évoquez ce problème pour le cas où votre tooltip vienne à déborder sur la gauche ou la droite, mais le problème existe aussi pour un débordement en haut ou en bas du site. Aller plus loin encore...Maintenant que vous savez comment créer un effet de tooltip, quelles peuvent être les possibilités d'un tel effet ? Car après tout rien de vous empêche de le détourner pour l'utiliser autrement... Voici quelques exemples d'effet Tooltip :
|