{"id":1081,"date":"2023-01-20T17:48:07","date_gmt":"2023-01-20T16:48:07","guid":{"rendered":"https:\/\/geekcommunicant.com\/blog\/?p=1081"},"modified":"2023-01-20T17:48:08","modified_gmt":"2023-01-20T16:48:08","slug":"gloubi-tuto-menu-images-reactives","status":"publish","type":"post","link":"https:\/\/geekcommunicant.com\/blog\/2023\/01\/20\/gloubi-tuto-menu-images-reactives\/","title":{"rendered":"Gloubi tuto &#8211; menu avec images r\u00e9actives"},"content":{"rendered":"\n<p>Nouvelle semaine, nouveau gloubi-tuto. Cette fois-ci, on s\u2019attaque \u00e0 un autre script de menu. M\u2019enfin script\u2026 pas cette-fois. M\u00eame si sur gloubiweb cela est pr\u00e9sent\u00e9 comme un script, il s\u2019agit en fait de CSS.<\/p>\n\n\n\n<p>Ce menu, qui est visible sur cette <a rel=\"noreferrer noopener\" href=\"http:\/\/gloubiweb.free.fr\/scripts\/javascript88.htm\" target=\"_blank\">page<\/a>, utilise la technique des <a href=\"https:\/\/www.alsacreations.com\/tuto\/lire\/1068-sprites-css-background-position.html\" target=\"_blank\" rel=\"noreferrer noopener\">sprites CSS<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pr\u00e9sentation de la technique des sprites<\/h2>\n\n\n\n<p>Cette technique consiste \u00e0 ne montrer qu\u2019une petite partie d\u2019une image plus grande, qui contient plusieurs \u00e9l\u00e9ments graphiques de notre mise en page, dans notre cas, tous les \u00e9tats des boutons de notre menu.<\/p>\n\n\n\n<p>Pour ne montrer qu\u2019une partie de cette image plusieurs techniques sont possibles&nbsp;: image dans un conteneur plus petit qui masque tout ce qui est en dehors (propri\u00e9t\u00e9 <code>overflow&nbsp;: hidden<\/code>) ou encore l\u2019utilisation de la grande image comme image de fond d\u2019un conteneur plus petit, positionn\u00e9e de mani\u00e8re \u00e0 ne laisser voir que la partie qui nous int\u00e9resse.<\/p>\n\n\n\n<p>C\u2019est cette deuxi\u00e8me technique qui utilis\u00e9e ici, en modifiant la position de l\u2019image de fond au survol de la souris.<\/p>\n\n\n\n<p>Le fait que l\u2019image de fond change de position au survol de la souris est visible sur la page originale, car les liens sont l\u00e9g\u00e8rement surdimensionn\u00e9s et laissent voir plus qu\u2019un seul et unique \u00ab&nbsp;bouton&nbsp;\u00bb.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Le code<\/h2>\n\n\n\n<p>Le menu est organis\u00e9 de mani\u00e8re plut\u00f4t classique, en utilisant une liste non ordonn\u00e9e dont on masque les marqueurs.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;div id=&quot;myMenu&quot;&gt;\n    &lt;ul&gt;\n        &lt;li&gt;&lt;a id=&quot;a&quot; href=&quot;#&quot;&gt;A&lt;\/a&gt;&lt;\/li&gt;\n        &lt;li&gt;&lt;a id=&quot;b&quot; href=&quot;#&quot;&gt;B&lt;\/a&gt;&lt;\/li&gt;\n        &lt;li&gt;&lt;a id=&quot;c&quot; href=&quot;#&quot;&gt;C&lt;\/a&gt;&lt;\/li&gt;\n        &lt;li&gt;&lt;a id=&quot;d&quot; href=&quot;#&quot;&gt;D&lt;\/a&gt;&lt;\/li&gt;\n    &lt;\/ul&gt;\n&lt;\/div&gt;\n\n&lt;style type=&quot;text\/css&quot;&gt;\n    #myMenu &gt; ul &gt; li {\n        list-style-type: none;\n    }\n&lt;\/style&gt;\n<\/pre><\/div>\n\n\n<p>Ensuite, chacun des liens est stylis\u00e9 de mani\u00e8re \u00e0 \u00eatre affich\u00e9 en mode bloc, dont la taille correspond \u00e0 celle d\u2019un bouton de l\u2019image, avec le texte centr\u00e9.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n#myMenu &gt; ul &gt; li &gt; a {\n    display:block;\n    text-align: center;\n    padding: 8px 0 0 8px;\n    width: 192px;\n    height: 24px;\n    background-image: url(&#039;assets\/files\/img\/gloubi\/menuours.gif&#039;);\n    text-decoration: none;\n    color: #000;\n}\n<\/pre><\/div>\n\n\n<p>Le changement de la partie de l\u2019image de fond \u00e0 afficher est g\u00e9r\u00e9 gr\u00e2ce \u00e0 la pseudo-classe <code><a href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/CSS\/:hover\" target=\"_blank\" rel=\"noreferrer noopener\">:hover<\/a><\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n#myMenu &gt; ul &gt; li &gt; a:hover {\n    background-position-y: -32px;\n}\n<\/pre><\/div>\n\n\n<p>Pour afficher les liens sur la m\u00eame ligne, diff\u00e9rentes m\u00e9thodes sont possibles. Une de ces m\u00e9thodes est les <a href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/CSS\/CSS_Grid_Layout\" target=\"_blank\" rel=\"noreferrer noopener\">grilles CSS<\/a>. Pour une grille de 4 colonnes d\u2019une largeur de 200px (largeur de nos boutons) et une s\u00e9paration de 8px entre chacune des ces colonnes, le CSS est le suivant&nbsp;:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n#myMenu &gt; ul {\n    display: grid;\n    grid-template-columns: repeat(4, 200px);\n    gap: 8px;\n}\n<\/pre><\/div>\n\n\n<p>L\u2019assemblage final des diff\u00e9rents bouts de code pr\u00e9sent\u00e9s ci-dessus donne ce <a href=\"https:\/\/geekcommunicant.com\/demos\/gloubi-script-menu-images-reactives.html\" target=\"_blank\" rel=\"noreferrer noopener\">r\u00e9sultat<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>J\u2019esp\u00e8re encore vous avoir appris quelque chose ou alors que ma pr\u00e9sentation vous ai permis de vous d\u00e9bloquer.<\/p>\n\n\n\n<p>Je vous dis \u00e0 bient\u00f4t pour de nouvelles aventures codesques.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nouvelle semaine, nouveau gloubi-tuto. Cette fois-ci, on s\u2019attaque \u00e0 un autre script de menu. M\u2019enfin script\u2026 pas cette-fois. M\u00eame si sur gloubiweb cela est pr\u00e9sent\u00e9 comme un script, il s\u2019agit en fait de CSS. Ce menu, qui est visible sur &hellip; <a href=\"https:\/\/geekcommunicant.com\/blog\/2023\/01\/20\/gloubi-tuto-menu-images-reactives\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[53],"tags":[51],"class_list":["post-1081","post","type-post","status-publish","format-standard","hentry","category-css","tag-gloubituto"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2IoOb-hr","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1085,"url":"https:\/\/geekcommunicant.com\/blog\/2023\/01\/27\/gloubi-tuto-texte-changeant-couleur\/","url_meta":{"origin":1081,"position":0},"title":"Gloubi tuto &#8211; texte changeant de couleur","author":"geekc","date":"27\/01\/2023","format":false,"excerpt":"Cette fois-ci encore, j\u2019ai d\u00e9cid\u00e9 de m\u2019attaquer \u00e0 un autre gloubi script d\u2019effet sur texte, le texte changeant de couleur. Une fois de plus, d\u00fb \u00e0 l\u2019\u00e9volution des technologies, plus besoin de JavaScript pour obtenir un r\u00e9sultat identique (ou en tout cas tr\u00e8s proche). Fonctionnement du script On indique au\u2026","rel":"","context":"Dans &quot;CSS&quot;","block_context":{"text":"CSS","link":"https:\/\/geekcommunicant.com\/blog\/category\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":976,"url":"https:\/\/geekcommunicant.com\/blog\/2022\/12\/02\/gloubi-tuto-un-menu-interactif-hello-kitty\/","url_meta":{"origin":1081,"position":1},"title":"Gloubi tuto &#8211; un menu interactif Hello Kitty","author":"geekc","date":"02\/12\/2022","format":false,"excerpt":"Bienvenue sur ce premier gloubi tuto (pour en savoir plus sur les gloubi tutos) qui concerne un menu interactif avec Hello Kitty. Pr\u00e9sentation et explication de l\u2019existant Pour voir la source du script actuel, RDV sur cette page du site de notre nouvel adversaire dans la guerre du gloubi. Le\u2026","rel":"","context":"Dans &quot;JavaScript&quot;","block_context":{"text":"JavaScript","link":"https:\/\/geekcommunicant.com\/blog\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1074,"url":"https:\/\/geekcommunicant.com\/blog\/2023\/01\/13\/gloubi-script-texte-arriere-plan-defilant\/","url_meta":{"origin":1081,"position":2},"title":"Gloubi script &#8211; texte avec un arri\u00e8re-plan d\u00e9filant","author":"geekc","date":"13\/01\/2023","format":false,"excerpt":"Aujourd\u2019hui nouveau tuto sur un gloubi script d\u2019effet sur texte. Cette fois ci, il s\u2019agit de texte avec arri\u00e8re-plan d\u00e9filant. Principe du script Le script original est disponible sur sa propre page sur le site de notre gloubi adversaire. Il fonctionne selon le principe de calques\u00a0: au-dessus du calque de\u2026","rel":"","context":"Dans &quot;CSS&quot;","block_context":{"text":"CSS","link":"https:\/\/geekcommunicant.com\/blog\/category\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1050,"url":"https:\/\/geekcommunicant.com\/blog\/2022\/12\/30\/gloubi-tuto-menu-interactif-deroulant\/","url_meta":{"origin":1081,"position":3},"title":"Gloubi tuto &#8211; menu interactif d\u00e9roulant","author":"geekc","date":"30\/12\/2022","format":false,"excerpt":"Cette semaine, attaquons-nous \u00e0 un autre script de menu pr\u00e9sent\u00e9 chez notre gloubi adversaire. Ce script est visible sur cette page, et est toujours fonctionnel dans les navigateurs modernes. Fonctionnement Le menu produit par ce script se pr\u00e9sente sous la forme d\u2019un tableau dans un tableau (je parle l\u00e0 des\u2026","rel":"","context":"Dans &quot;CSS&quot;","block_context":{"text":"CSS","link":"https:\/\/geekcommunicant.com\/blog\/category\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1121,"url":"https:\/\/geekcommunicant.com\/blog\/2023\/02\/24\/gloubi-script-cadre-clignotant\/","url_meta":{"origin":1081,"position":4},"title":"Gloubi script &#8211; un cadre clignotant","author":"geekc","date":"24\/02\/2023","format":false,"excerpt":"Aujourd\u2019hui, nous allons nous attaquer \u00e0 un script pr\u00e9sent\u00e9 chez notre gloubi rival qui pourra vous \u00eatre tr\u00e8s utile pour mettre en avant n\u2019importe quel contenu sur, par exemple, la magnifique page d\u2019accueil de votre tout aussi sublime site\u00a0: le cadre clignotant. Comme pour d\u2019autres gloubi scripts d\u00e9j\u00e0 pr\u00e9sent\u00e9s, il\u2026","rel":"","context":"Dans &quot;CSS&quot;","block_context":{"text":"CSS","link":"https:\/\/geekcommunicant.com\/blog\/category\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1108,"url":"https:\/\/geekcommunicant.com\/blog\/2023\/02\/10\/gloubi-tuto-menu-avec-description-du-lien\/","url_meta":{"origin":1081,"position":5},"title":"Gloubi tuto &#8211; menu avec description du lien","author":"geekc","date":"10\/02\/2023","format":false,"excerpt":"Voici venu le temps d\u2019un nouveau gloubi tuto sur un autre script de menu. Aujourd\u2019hui, nous allons nous attaquer au menu interactif avec description du lien. Fonctionnement du script Le menu est mis en forme avec un simple tableau \u00e0 une seule colonne, avec un case vide en pied de\u2026","rel":"","context":"Dans &quot;JavaScript&quot;","block_context":{"text":"JavaScript","link":"https:\/\/geekcommunicant.com\/blog\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts\/1081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/comments?post=1081"}],"version-history":[{"count":0,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts\/1081\/revisions"}],"wp:attachment":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/media?parent=1081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/categories?post=1081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/tags?post=1081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}