Créer un menu CSS graphique à onglet 2

jeudi 15 mai 2008
Article écrit par : Wonka
Je suis très humblement le webmaster et le créateur de ce site, vous êtes en ce moment sur ma fiche membre, vous avez la possibilité de m’’envoyer des messages, pour toutes questions n’hésitez pas une seule seconde !
WonkaStudio

Je viens de créer une image de 500 pixels de large sur 200 de haut. J’y ai placé divers éléments : header, logo, menu, article… dans le but de créer une interface graphique ou tout du moins un morceau. Cette image servira de base pour créer un menu CSS avec onglets graphiques dont le style s’apparente énormément aux sites de style web 2.0 !

Le menu est horizontal, au survol de la souris un onglet orange apparaît derrière le lien actif. Ce tutorial se compose en deux parties : La création du menu graphique sous photoshop (très simple) et la découpe et le codage en CSS.

Le tout est accessible aux débutants, alors n’hésitez pas à tester ce tutoriel !

Ce menu CSS est optimisé pour le web et ne comporte que deux images :

Il ressemble à cela :

Pour le tester en live :

http://www.wks.fr/tutorial_help/tutorial_333/wks_tutorial_css_2.html

LA CREATION GRAPHIQUE

ETAPE 1

Je crée donc une image de 500 sur 200 pixels. Je vais directement remplir l’arrière plan de mon image avec un léger dégradé (foncé en haut plus clair en bas). Vous pouvez voir les styles de calques utilisés dans le fichier psd téléchargeable ci-dessous.

Photoshop - 433.2 ko
Fichier source photoshop
clic pour télécharger le fichier source photoshop utilisé dans ce tutorial

ETAPE 2

Avec l’outil texte je crée mes liens, en état inactif, ceux-ci sont soulignés, colorés en bleu clair, en état actif ils sont non soulignés et colorés en blanc.

ETAPE 3

Je sélectionne l’outil rectangle arrondi des formes personnalisées avec un radius au minimum de 10 pixels. Puis je crée un rectangle derrière le lien actif (celui en blanc).

Pour finir j’ajoute un style de calque (incrustation de dégradé).

ETAPE 4

J’ajoute différents éléments (fictifs pour le moment) pour mettre en situation mon menu.

Terminée, la partie graphique est TRES simple ;) passons maintenant au code CSS, vous allez voir c’est presque aussi simple ;)

PROGRAMMATION DU CODE CSS

Je commence par créer mon fichier HTML avec les lignes standards :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <meta http-equiv="content-type" content="text/html; charset=windows-1250">
 <meta name="generator" content="PSPad editor, www.pspad.com">
 <title>WonkaStudio - Tutorial Webdesign CSS / menu horizontale full CSS</title>
 </head>
 <body>

 </body>
</html>

Ensuite je passe à la déclaration de mes styles CSS, pour cela j’ajoute les lignes ci-dessous entre les balises HEAD de ma page :


<style type="text/css">

/*Credits: WonkaStudio http://www.wks.fr */
/*Tutorial Webdesign */

body {
        background-color:#fff;
        margin:0;
        padding:0;
}
</style>

Je définis ci-dessus des banalités concernant la page, je ne touche pas aux tailles em des mes textes car j’adore travailler en px (c’est pas bien cela ;)

Passons ensuite à la déclaration brute de mon menu, pour cela je vais utiliser les ul li du code HTML, voila ce que cela donne :


<ul class="menu">
<li><a href="#"><b>Accueil</b></a></li>
<li><a href="#"><b>Produits</b></a></li>
<li><a href="#"><b>Services</b></a></li>
<li><a href="#"><b>Références</b></a></li>
<li><a href="#"><b>Contacter nous</b></a></li>
<li><a href="#"><b>Partenaires</b></a></li>
</ul>

Vous remarquez que chaque libellé Accueil, Produits… se trouve dans une balise lien A href qui lui-même se trouve dans un li qui lui-même se trouve dans un ul qui lui-même est soumis à une classe CSS du nom de menu (pas mal l’explication !).

Nous allons donc définir la classe menu, cependant celle-ci est un peu compliquée, nous allons donc la décomposer en trois étapes :

  • Style pour le menu général
  • Style pour les liens (boutons)
  • Style pour l’état hover.

Style pour le menu général

Il faut définir la taille du menu, son fond et enfin l’aspect général du menu qui est en fait le ul. Pour cela je vais utiliser le code :


.menu {
 list-style:none;
 width:100%; height:71px;
 margin:0;
 background: url(background.jpg);
 }

Je définis ici la taille de mon menu : il devra ainsi faire 71 px de haut et s’étendre sur toute la largeur de mon écran. Je lui définis également la couleur de fond, ici c’est une image background.jpg !

Et voila pour cette première étape.

Style pour les liens (boutons)

Passons maintenant aux styles de mes boutons, cette étape sera également très facile !

Voici le code à utiliser :


.menu li a {
 display:block;
 float:left;
 height:32px;
 line-height:32px;
 color:#aaa;
 text-decoration:none;
 font-family:arial, verdana, sans-serif;
 text-align:center;
 font-size:14px;
 text-decoration:underline;
 padding:0 0 0 7px;
 cursor:pointer;
}
.menu li a b {
 float:left;
 display:block;
 padding:0 14px 0 7px;
}

Je n’expliquerai pas la classe menu li a qui ne présente aucune difficulté, cependant la classe menu li a b est beaucoup plus intéressante, en effet elle permet de créer le bord arrondi se trouvant sur la droite. La technique du b est utilisée pour pouvoir créer à la volée des boutons de différentes largeurs tout en gardant une et une seule image de fond !

Etudiez bien ce code en premier lieu, il peux paraitre sauvage mais en fait il est très facile et limpide par son bon sens !

C’est pourquoi je passe directement à l’état hover de mes boutons.

Style pour l’état hover

Ah la la, j’ai déjà bientôt terminé mon menu. Je vais donc appliquer l’état hover sur mon bouton, encore une fois rien de compliqué : il faut changer la couleur du texte, enlever le soulignement, et ajouter un fond background.

Voici le code à utiliser :


.menu li a:hover {
 color:#fff;
 text-decoration:none;
 background: url(onglet_hover.jpg);
}

.menu li a:hover b {
 background:url(onglet_hover.jpg) no-repeat right top;
}

Vraiment trop facile non ?

Mais oui ! il manque encore quelque chose : l’état current de mon bouton ! Si vous êtes malin vous aurez compris qu’il suffit de copier coller le code ci-dessous en changeant le libellé comme ci-dessous :


.menu li.current a {
 color:#fff;
 text-decoration:none;
 background: url(onglet_hover.jpg);
}
.menu li.current a b {
 background:url(onglet_hover.jpg) no-repeat right top;
}

Ne pas oublier d’ajouter la classe sur mon lien dans la balise ul pour que cette nouvelle classe soit prise en compte :


<li class="current"><a href="#"><b>Services</b></a></li>

Maintenant c’est terminé !

Vous pouvez voir en live le résultat de ce tutoriel : http://www.wks.fr/tutorial_help/tutorial_333/wks_tutorial_css_2.html

Pas mal non ?

Bonne chance à tous pour la réalisation de ce menu CSS web 2.0 !

La galerie des membres

Url de l'image : http://www.wks.fr/stockpix/463/2211.jpg Url de l'image : http://www.wks.fr/stockpix/463/2830.jpg

Ajouter votre image dans la galerie
Si vous avez réussis ce tutorial vous avez la possibilité de poster votre dessin dans la galerie, vous pourrez ensuite le publier dans les commentaires (que vous trouverez en bas de page).
Attention votre fichier devra être en format JPG, et son poid inférieur a 200ko !

Vos commentaires ( 26 messages dans le forum)
Ajouter un commentaire à cet page
  • Créer un menu CSS graphique à onglet 2
    21 mai 2008 15:13, par Mofo

    Salut wonka !

    je viens de faire ton tuto sur le « menu css graphique à onglet 2 » et il y a un problème avec internet explorer 7, il dispose les onglets en cascade !!! je sais bien que IE est tout naz mais comme c’est toujours le navigateur le plus présent des les ordi, c’est très génant. Sinon aucun problème avec safari, opéra, firefox. Et cela m’interressait pour faire un site, si cela ne marche pas avec IE !!! Dis moi si tu as trouvé le problème. A+

    Répondre à ce message
    • Créer un menu CSS graphique à onglet 2
      21 mai 2008 23:05, par wonka
      testé ff ie et safari tu utilises quelle version ? Répondre à ce message
      • Créer un menu CSS graphique à onglet 2
        22 mai 2008 11:07, par Mofo

        salut wonka, j’utilise la version ie 7.0.6 mais j’ai ouver ta page du site avec ie et aucun problème pour ton menu en effet ! Donc cela vient de moi et comme je débute en css j’ai un peu de mal :-)

        si tu veux bien regarder vite fait sur mon code css, car j’ai forcement merdé quelque part. Merci d’avance, mais je cherche quand même ...

        @charset « utf-8 » ;

        .menu list-style:none ; width:100% ; height:71px ; margin:0 ; background-image : url(images/fond_bleu_02.gif) ;

        .menu li a height:32px ; line-height:32px ; color :#aaa ; text-decoration:none ; font-family:Arial, Helvetica, sans-serif ; font-size:14px ; text-decoration:none ; float : left ; font-weight : bold ; text-align : center ; margin-right : 15px ; width : 101px ; padding : 0 ; display : block ; cursor : pointer ;

        .menu li a b float:left ; display:block ; padding-top : 0 ; padding-right : 14px ; padding-bottom : 0 ; padding-left : 7px ;

        .menu li a:hover color :#fff ; text-decoration:none ; background-image : url(images/onglet_orange_02.gif) ; background-repeat : no-repeat ;

        .menu li a:hover b background-image : url(images/onglet_orange_02.gif) ; background-repeat : no-repeat ; background-position : right top ;

        .menu li.current a color :#fff ; text-decoration:none ; background-image : url(images/onglet_orange_02.gif) ; background-repeat : no-repeat ;

        .menu li.current a b background-image : url(images/onglet_orange_02.gif) ; background-repeat : no-repeat ; background-position : right top ;

        Répondre à ce message
  • Créer un menu CSS graphique à onglet 2
    15 juillet 2008 12:13, par ThVi

    Merci pour l’astuce de l’onglet extensible. C’est un tuto simple et clair. Continuez dans ce sens.

    Répondre à ce message
    • Créer un menu CSS graphique à onglet 2
      20 août 2008 10:11, par oxyde

      Vraiment sympa comme tutoriel !

      Petite question cependant , il suffit donc de créer un onglet d’une certaine taille pour qu’il s’adapte automatiquement en background avec une taille inférieur par exemple ? Ou faut-il faire différentes tailles à chaque fois ?

      Répondre à ce message
      • Créer un menu CSS graphique à onglet 2
        30 octobre 2008 22:11, par atlasdesign
        slt wonka chui débutante Css c acile a comprondre vue ta façon d’éxpliquer mérci bcp j’att + d’éxércice :)

        Voir en ligne : débutante

        Répondre à ce message
        • Créer un menu CSS graphique à onglet 2
          8 décembre 2008 07:41, par Asti
          Hello Wonka, Je voulais savoir si ton site était un mélange de PHP/CSS ?? Si oui commment fais tu pour incorporer les 2 ensemble ?? Merci d’avance Répondre à ce message
          • Créer un menu CSS graphique à onglet 2
            8 décembre 2008 11:20, par Wonka
            Bah WKS tourne autour d’un CMS spip donc je touche pas vraiment au PHP, quand au CSS il est comme il est bien au chaud dans sa feuille de style ;) Répondre à ce message
            • Help conception site
              8 décembre 2008 19:33, par Asti

              Hello Wonka !! Je voulais savoir une petite chose concernant ton site ! Réalises tu le en language css/PHP ?? Si oui comment fais tu pour mélanger les 2 ??

              Merci d’avance

              Répondre à ce message
              • Help conception site
                10 décembre 2008 07:36, par Asti
                Merci beaucoup pour ta réponse ;) et désolé du double post !! Répondre à ce message
                • Help conception site
                  14 décembre 2008 16:35, par Asti
                  Pourrais tu nous faire un ptit tuto sur spip stp ?? J’ai déjà crée mon site en CSS/xhtml mais j’aimerais ajouter des système de gestion de news ! Merci Répondre à ce message
                  • Help conception site
                    15 décembre 2008 14:52, par Wonka
                    J’aimerais beaucoup faire cela, mais ce site a un but d’apprentissage du design et non de la programmation, du coup je vais éviter de m’eparpiller sur des sujets que je ne pourrais tenir à la longue ! Désolé. Répondre à ce message
                    • Help conception site
                      17 décembre 2008 13:05, par Asti

                      ok je comprends parfaitement ton idée.. Par contre connaitais-tu des sites axpliquants le début avec spip ?? comment gérer des news, commentaires etc...

                      Est il possible d’adapter spip sur une page html déjà crée ??

                      Merci d’avance

                      Répondre à ce message
                      • Help conception site
                        18 décembre 2008 09:46, par Wonka
                        Le site spip officiel est pas mal car il explique chaque page en détail et l’utilisation de chaque boucle. Et oui on peut adapter un spip sur une template existante ;) Regarde wks, c’est un bonne exemple ! Répondre à ce message
                        • Help conception site
                          18 décembre 2008 19:20, par Asti

                          Ouai, c’est sur que ton site est très beau visuellement !! J’essais de retrouver un peu les balises utilisées sur ton site ;) Va falloir que je regarde plus attentivement spip.. Je te montre juste mon site en impr ecr. Penses tu que je peux adapter spip pour un site comme le mien ?? Sachant qu’il ne prends pas toute la taille de l’écran et que j’ai utlisé pas mal de div..

                          http://img410.imageshack.us/img410/8884/image1lo4.png

                          Répondre à ce message
                          • Help conception site
                            22 décembre 2008 10:22, par Asti
                            Juste une petite question après je t’embête plus.^^ J’ai inséré ma feuille de style css dans mon squelette mais les images en backgroud n’apparaissent pas :/ Comment résoudre ce problème ? Répondre à ce message
  • Créer un menu CSS graphique à onglet 2
    13 janvier 2009 21:59

    Bonjour,

    Merci pour ce tuto sa marche parfaitement, mais j’aurais une question je voudrais que les différents onglet soit au milieu de la page a l’horizontal je trouve ca plus jolie merci d’avance de ta réponse.

    A+

    Répondre à ce message
  • Créer un menu CSS graphique à onglet 2
    30 avril 2009 21:43, par Oli

    magninfique, merci comme tout le reste sur ton site ;

    et sans abuser peux tu me donner une piste pour faire un sous menu (une arborescence)... ! ce serait le top !

    Répondre à ce message
  • Créer un menu CSS graphique à onglet 2
    22 octobre 2009 14:29, par Cora-liie

    bonjour bonjour !!

    voila je suis justement en train d’essayer de faire ce menu mais je n’y arrive pas... je loupe certainement une étape mais moi tout reste sans que l’on mette le moindre CSS...

    merci d’avance !! (c’est pas mal du tout ce que tu fais !!^^)

    Répondre à ce message
  • Créer un menu CSS graphique à onglet 2
    4 janvier 17:36, par Votre pseudonyme

    Bonne année ! Et merci pour cette article ;) Bonne continuation

    Jeux gratuits

    Répondre à ce message
  • Créer un menu CSS graphique à onglet 2
    31 janvier 18:14, par Jutix
    Sympa le tutoriel ;-) Bonne continuation les gars !

    Voir en ligne : Jutix *Website for developers

    Répondre à ce message

modération à priori

Ce forum est modéré à priori : votre contribution n'apparaîtra qu'après avoir été validée par un administrateur du site.

Ajouter un commentaire

Continuer la lecture sur wks.fr

Copyright

Les articles et images d'illustrations sont propriété de l'auteur et du réseau Grafik Network & Wks.fr.

Toute copie, reproduction ou diffusion sans autorisation sont interdites. Les images ainsi que les textes sont protégés par le droit français d'auteur ainsi que par un Copyright.