IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Menu actif en CSS


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Par défaut Menu actif en CSS
    Je souhaiterais savoir s'il existe un moyen purement CSS sur le menu actif.
    La solution pour un menu simple sans sous-menu peut se faire en Php mais c'est assez lourd à maintenir je trouve pour des menus importants.

    Pour mieux faire comprendre, voici un code très simple.
    Code CSS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    html, body 	{ margin:0; padding:0; height:100%; font-size:100%; font-weight:normal; }
    ul#vermenu 			  { width:100px; margin:0; padding:0; list-style:none; border:none;  }
    ul#vermenu li:hover>* { display:block; }
    ul#vermenu li:hover   { position:relative; }
    ul#vermenu li         { display:block; white-space:nowrap; margin:1px; margin-top:5px; }
    ul#vermenu a          { display:block; vertical-align:middle; text-align:left; text-decoration:none; color:#fff; 
     		         margin:0; padding:5px; background-color:#69F; }				
    ul#vermenu li:hover>a { background-color:#00C; color:#fff; text-decoration:underline; }
     
    ul#vermenu li.active a  { background-color:#F60; }
    ul#vermenu li.active:hover a  { text-decoration: none; }
    Et le code html:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <ul id="vermenu">
        <li><a href="#" title="">menu1</a></li>
        <li class="active"><a href="#" title="">menu2</a></li>
        <li><a href="#" title="">menu3</a></li>
        <li><a href="#" title="">menu4</a></li>
    </ul>

    Il s'agit donc simplement d'indiquer par une couleur ou autre, quelle est la page active.

    Le résultat dans: http://codepen.io/anon/pen/amvCH
    Evidement dans l'exemple la page active est toujours la même.
    Si quelqu'un a une idée, merci d'avance.

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Citation Envoyé par JefReb Voir le message
    La solution pour un menu simple sans sous-menu peut se faire en Php mais c'est assez lourd à maintenir je trouve pour des menus importants.
    Bonjour,
    vous avez des menus-simple sans sous-menu, mais php est pas bon pour vous , pour des menus importants ?

    Vous demandez une gestion dynamique du menu, donc normalement il faut passer par du code coté serveur ou client.

    Il est impossible de répondre car on a aucune idée de la structure du site. Par exemple, avec php une page categorie, ou produit va être utilisée facilement dans 99 menus différents, donc le même page physique a 99 menus différents!

    Une solution, la plus simple ?

    c'est de mettre un id a chaque menu
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <li id="m1"><a href="#" title="">menu3</a></li>
    <li id="m2"><a href="#" title="">menu4</a></li>

    et en début de chaque page générer un code css inline avec une fonction (php..js)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
      function setMenuActif($id) {
      echo '<style>#m'.$id.' { background-color:#000; }</style>';
      }
    echo setmenuActif(44);
    ?>
    ou bien sur si une page est statique, simplement écrire ce code css ou une function js

  3. #3
    Membre Expert
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Par défaut
    Bonjour,

    il y a la solution en Javascript sinon.

    Le sujet est souvent abordé sur le forum...

    Sur google vous aurez des résultats en utilisant la requête suivante :"menu highlight css" ou "menu highlight current page"

    Un tuto de DVP pour expliquer le fonctionnement : Créer une boîte d'onglets avec CSS et jQuery

  4. #4
    Membre émérite
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Par défaut
    Merci pour les orientations.
    Je vais creuser. La solution de papajoker me plait aussi.
    Je vais voir dans les sujet aborder dans les forum par rodolphebrd.
    Je clos le topic, inutile de vous faire perdre du temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. menu en php avec lien actif en css
    Par serna dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2014, 11h23
  2. [HTML] Pb bouton menu actif (a:active)
    Par hkiller dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/11/2007, 12h04
  3. menu déroulant en css
    Par cisse18 dans le forum Mise en page CSS
    Réponses: 25
    Dernier message: 08/06/2006, 09h12
  4. "Assembler" les éléments d'un menu javascript (.js + .css)
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/06/2006, 10h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo