AccueilFAQRechercherMembresGroupesS'enregistrerConnexion

Forum de graphisme, codage et game design proposant des tutoriels, astuces, libres services et commandes dans les domaines de l'infographie amateur, de l'intégration web (HTML et CSS essentiellement) ainsi que dans la conception de RPG sur forum.


    Créer une infobulle

    Partagez
    NyoTheNeko
    FémininAge : 22Messages : 5018

    le Mar 20 Mai 2014 - 9:44



    Créer une infobulle





    Bonjour à tous! Voilà un petit tutoriel pour vous apprendre à faire une infobulle! Nous verrons rapidement les bases de ce qu'est une infobulle, mais également ses différentes variations (sur une image, sur un texte ou sur un objet (div, table, etc. mais nous ne verrons comme exemple qu'une div!)) ainsi que quelques effets sur cette dernière. Une fois avoir lu ce tuto, vous pourrez alors sans problème créer une infobulle par vous-même sans avoir à utiliser un LS uniquement pour ça! ^^

    Notez que les explications seront visibles, mais tous codes seront sous hide!

    Les bases


    Pour créer une infobulle, il nous faut trois choses: une balise qui entoure notre objet sur lequel sera l'infobulle ET l'infobulle, l'infobulle en elle-même, et enfin, l'objet sur lequel sera l'infobulle.
    Comme déjà exprimé dans l'introduction et comme vous le voyez avec les titres de ce tuto, l'objet sur lequel sera l'infobulle peut être de plusieurs formes: un texte, une image, ou alors un autre objet, comme une able, un div ou une section entière même.
    Pour afficher une infobulle, nous utiliseront alors la pseudo-classe hover qui permet de changer un objet au passage de la souris. On pourrait bien sûr utiliser d'autres pseudo-classes, comme target pour que cela soit "au click", cependant, ce tuto va uniquement vous montrer pour le hover (le target étant largement moins utilisé et quelque peu plus compliqué).

    Passons donc tout de suite au code!


    Ok mais là tout est vide! Et c'est un peu sale là d'avoir des div dans tous les sens!

    Effectivement, et là, pour l'instant, ce code ne fait pas grand chose... et n'affiche rien! En effet, vu que les div sont vides, rien ne s'affiche! Cependant, c'est la structure de base pour notre infobulle: une div qui entoure deux objets: le premier étant l'objet sur lequel sera l'infobulle, et le second l'infobulle en elle-même.
    Vous pouvez bien sûr déjà remplir les deux div internes, et même changer la première div par autre chose (une imae, un span, etc) comme nous verrons plus tard, mais l'important est d'avoir ces trois éléments!

    Cependant, avant de passer à autre chose, commençons tout de suite par la base du CSS pour ces trois éléments. Faites bien attention aux classes et ce qu'il s'y fait.


    Et ça donne ceci:


    Ok d'accord, ça fait beaucoup tout ça! O__O

    Effectivement! Mais ne vous inquiétez pas, voici les explications, pas à pas!



    Les variations


    Sur une image


    Donc au lieu d'une div, on peut simplement avoir une image en tant qu'objet visé (donc objet sur lequel sera l'infobulle).

    Titre Image


    Et voici le code correspondant:


    Avec le CSS correspondant:


    Hé, mai quasi-rien ne change!

    Effectivement, mis à part la taille du conteneur qui change pour s'adapter à la taille de l'image, et le fait que la partie sur "objet_vise" est simplement effacée, eh bien rien ne change! C'est ça qui est bien avec les infobulles: changer d'un objet à l'autre est très simple!

    Et si je veux faire des effets sur mon image?

    Eh bien il vous suffit d'ajouter ces deux choses là:

    Donc ceci permet de mettre en forme toutes les images qui sont dans conteneur.

    Attends... TOUTES les images dans conteneur? Mais alors... cela veut dire que si j'ai une image dans mon infobulle elle sera affectée aussi?

    Et oui! Si vous ne voulez pas que les images dans votre infobulle soient touchées, alors il va falloir mettre une classe à l'image sur laquelle sera l'infobulle, et donc refaire comme plus tôt.

    Et voilà, le problème est contourné en réutilisant les codes de départ, mais en pansant que "objet_vise" est à présent une image!

    Sur un texte


    Voici donc ce que l'on veut avoir:
    Blah blah blah. Ceci aura une infobulle...
    Blah blah blah.

    Et voici les codes:

    À nouveau pas grand chose ne change, si ce n'est que l'objet visé et le conteneur sont tous deux des span! En effet, c'est très important, car les span sont des objet "inline" (=en ligne) c'est à dire qu'il n'y a pas de retour à la ligne avant ou après de façon forcée, ce qui permet de faire que tout ceci reste dans le texte.
    Vous remarquerez aussi que la hauteur et la largeur des éléments en span ont été retirés, vu que ceux-ci se mettent à la taille de façon automatique: pas besoin donc de les mettre!

    C'est donc une plus "grande" différence que ce qu'il y avait pour le passage d'une div à une image, mais relativement simple tout de même!

    Sur un objet (div)


    Eh bien c'est exactement le code vu au départ de notre tuto! Vos pouvez bien-sûr transformer votre div comme bon vous semble, y mettre du texte, une image de fond, etc etc etc. Bref, beaucoup de possibilités, et je laisse votre créativité imaginer que faire et le tenter! Comme d'habitude, la section des problèmes est là pour vous aider avec tout problème de code! Wink

    Quelques effets


    Maintenant que vous savez comment faire une infobulle, vous devez vous dire que c'est assez... moche! En effet, elle ne fait qu'apparaître tout simplement et disparaître aussi vite qu'elle est venue! Aucune transition, etc. Je vais donc ici vous montrer quelques exemples de transitions, assez simple à effectuer sur les infobulles! Nous n'allons donc que toucher sur le code CSS des infobulles, le rester restera pareil. (Je mets juste une transition sur l'objet visé pour que cela soit plus joli).

    Apparition en fondu


    Ce que ça donne:


    Et voici le CSS correspondant:

    Comme vous le voyez, il suffit d'ajouter un "transition". Ici, elle se fait en une seconde (le 1s), mais on peut aussi la faire plus court ou plus longue en changeant cette valeur. On a également ajouté le transition au hover ET au normal. En effet, si on veut que l'infobulle apparaisse doucement, on voudrait aussi qu'elle disparaisse de la même manière!
    Si vous ne voulez que cela soit fait en fondu que dans un sens, dites-vous que le "hover" est l'apparition, et le normal pour la disparition.

    Apparition en agrandissement


    Voici ce que nous voulons:


    Et le code CSS correspondant, on utilise transform: scale:

    Comme vous pouvez le voir, on retire l'opacité et on met simplement le transform: scale à la place, en le faisant aller de 0 à 1. c'est à dire que l'infobulle ira d'une grandeur = 0 à une grandeur =1 (qui est sa grandeur naturelle. On n'a donc plus besoin d'opacité.
    À nouveau, on utilise une transition pour que l'apparition se fasse graduellement!

    Apparition en rotation


    Voici ce que nous voulons:


    Avec le code CSS:

    Ici, on utilise donc transform: rotate, en passant de 360 à 0 degrés. Cela permet de faire faire un tour complet à l'infobulle. Il est obligatoire d'avoir 0 degrés au hover, pour que votre infobulle soit à l'endroit est droite. Vous pouvez très bien changer la valeur si vous voulez, par exemple, qu'elle soit quelque peu en biais lors de l'arrêt de la transition!
    La valeur de rotate au "normal" indique donc où on veut commencer la rotation, donc si l'infobulle fait un tour entier, un demi tour, etc. Bref, à vous de choisir!
    Vous remarquez également qu'on a gardé l'opacité ici, donc qu'on a un mélange entre un fondu et une rotation! Cependant, ceci est obligatoire, car autrement, votre infobulle apparait de façon soudaine, et effectue simplement une rotation une fois apparue!
    Et bien sûr, l'utilisation de transition pour que tout ceci se fasse un peu comme une animation!

    Apparition en rotation et agrandissement


    Voici ce que nous voulons:


    Avec le code CSS:

    Comme vous pouvez le voir, il y a présent deux valeurs à transform: rotate ET scale. Grâce à scale, on peut également supprimer l'opacité, vu que l'on part d'une grandeur nulle et que donc l'infobulle n'est pas "là".
    Et bien sûr la transition pour l'effet d'animation.

    Vous pouvez très bien a imaginer d'autres formes d'apparition pour les infobulles, mais ceci vous donne déjà quelques idées!

    Et voilà, c'est la fin de ce tuto! Si vous avez des questions ou des problèmes, n'hésitez pas!


    Dernière édition par NyoTheNeko le Jeu 22 Jan 2015 - 21:02, édité 1 fois



    Flower_*
    FémininAge : 21Messages : 502

    le Ven 23 Mai 2014 - 19:22

    Génial ce tuto ! C'est super utile ! Merci beaucoup !
    Aile
    FémininAge : 28Messages : 123

    le Mar 27 Mai 2014 - 2:40

    Les infobulles ou LE truc que je n'ai jamais réussis à faire correctement même avec destuto!
    Un grand merci pour celui-ci, je vais tenter^^



    A-Lice
    FémininAge : 22Messages : 4939

    le Mar 27 Mai 2014 - 10:50

    Moi j'suis juste curieuse de voir comment tu fais x)

    tenderness
    FémininAge : 22Messages : 53

    le Lun 2 Juin 2014 - 21:59

    Merci ♥
    Amasis
    FémininAge : 43Messages : 302

    le Mar 3 Juin 2014 - 23:24

    OMG! LE code dont j'ai toujours eu besoin!!

     :friends: :bisou: :bisou: :bisou: 
    En ligne
    Cruelly
    FémininAge : 23Messages : 2424

    le Mer 4 Juin 2014 - 0:05

    Super merci beaucoup :)



    Construction d'un forum en cours ! Vous pouvez me donner votre avis ou m'apporter votre soutiens dans mon WIP :hug:
    Eden.
    FémininAge : 24Messages : 201

    le Jeu 5 Juin 2014 - 0:43

    Merci beaucoup !
    Aurore13
    FémininAge : 28Messages : 43

    le Sam 7 Juin 2014 - 21:05

    Merciiiiiiiii pour ce tuto ♥
    Frosty Blue
    FémininAge : 20Messages : 154

    le Dim 8 Juin 2014 - 15:45

    Un tuto super utile, merci beaucoup! La première chose que je me suis dit en le voyant c'est: si seulement je l'avais eut avant! ^^
    SugarBuse
    FémininAge : 18Messages : 42

    le Mer 11 Juin 2014 - 19:10

    Merci !
    Pensées
    FémininAge : 71Messages : 41

    le Mar 17 Juin 2014 - 16:30

    Hyper utile!
    Neva
    FémininAge : 25Messages : 18542

    le Mer 18 Juin 2014 - 18:51

    Très bon sujet (on voit qu'il a déjà du succès x) ) et explications très claires, merci Nyo !



     
    Claclou02
    FémininAge : 18Messages : 46

    le Ven 20 Juin 2014 - 19:33

    Mici !
    Valinwë
    FémininAge : 25Messages : 115

    le Ven 20 Juin 2014 - 19:59

    C'est super classe ! Merci beaucoup.



    Brisyx
    FémininAge : 15Messages : 29

    le Dim 22 Juin 2014 - 10:58

    Wouah !! Trop cool ce tutoriel .

    Merci !
    Sarah W.
    FémininAge : 18Messages : 35

    le Dim 22 Juin 2014 - 11:35

    Ce tuto est super utile ! merci à toi 8D
    Krolinger
    MasculinAge : 26Messages : 67

    le Mar 24 Juin 2014 - 20:14

    Magnifique



    Tameless+
    FémininAge : 19Messages : 245

    le Mer 25 Juin 2014 - 15:49

    wow ! ça fait super longtemps que je voulais savoir comment on faisait ça ! *-* Oh ! un grand merci à toi !!



    Jawilsia
    FémininAge : 24Messages : 143

    le Mer 25 Juin 2014 - 18:23

    Merci, je voulais justement apprendre à faire ça  Razz 
    Merino
    MasculinAge : 21Messages : 55

    le Jeu 26 Juin 2014 - 21:54

    Merci pour ce tutoriel, il est très utile !
    POmmeDeTerre
    FémininAge : 16Messages : 31

    le Ven 27 Juin 2014 - 14:03

    Merci beaucoup pour ce tuto, il est super bien expliqué et très utile 8DD
    Cherry'
    FémininAge : 20Messages : 59

    le Ven 27 Juin 2014 - 14:10

    Merci beaucoup!!! ♥
    Grenouille
    FémininAge : 20Messages : 49

    le Mer 2 Juil 2014 - 14:29

    merci de nous faire partager ton savoir ♥
    simonriou
    MasculinAge : 21Messages : 46

    le Mer 2 Juil 2014 - 17:59

    J'ai hâte d'en faire chez moi! Merci milles fois à toi, ainsi qu'à tous ceux qui partagent leurs tutos! :bisou: 
    Contenu sponsorisé

    Aujourd'hui à 22:42


      La date/heure actuelle est Mar 6 Déc 2016 - 22:42