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 vertical HTML - CSS


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut Menu vertical HTML - CSS
    Salutations,

    Je butte sur un code pompé à droite à gacuhe qui me gère un menu déroulant en CSS.
    Coté menu, il fonctionne, par contre, des que j'ajoute un tag A (d'ou l'interet en fait d'un menu), jen 'ai que le texte de l'option de menu cliquable, et non le DIV ensntier.

    J'ai bien essayé 36 manips, mais rien de géant.

    Voici un bout du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    (...)
    <nav id="main_menu_nav">
    	<div id="link">
    		<h3><a href="#>">Accueil</a></h3>
    	</div>
    	<div id="cat1">
    		<h3>Association</h3>
    		<input type="checkbox" id="Association" />
    		<label for="Association"></label>
    		<ul>
    			<li class="transition_css"><a id="link" href="#>">Qui sommes-nous ?</a></li>
    			<li class="transition_css">Adhésion</li>
    			<li class="transition_css">Nos Actions</li>
    			<li class="transition_css">Références</li>
    			<li class="transition_css">Aidez-nous</li>
    			<li class="transition_css">Liens</li>
    		</ul>
    	</div>
    </nav>
    (...)
    Et CSS correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    (...)
    	@charset "UTF-8";
    	/* Stylesheet */
     
    	body, div, a, ul, li, input, h1, h2, h3, h4, h5, h6, label {
    	margin: 0;
    	padding: 0;
    	border: 0;
    	outline: 0;
    	float: none;
    	-webkit-font-smoothing: auto;
    	}
     
    	/* Bloc menu */
    	nav {
    		font-family: Verdana, Arial;
    		font-size: 14px;
    		width: 150px;
    		height: auto;
    		position: fixed; /* Make it stick, even on scroll */
    	}
     
    	h3 {
    		background: #FF8727;
    		padding: 8px;
    		padding-left: 10px; /* Marge gauche */
    		position: relative;
    		color: #FFFFFF;
    		text-shadow: 2px 1px 1px #000000; /* Ombrage */
    		border: 0px;
    	}
     
    	h3:hover {
    		background: #CCCCCC;
    		color: #FF8727;
    	}
     
    	/* Sous-bloc */
    	ul {
    		height: auto;
    		display: none;
    	}
     
    	/* Lignes de sous-bloc */
    	li {
    		color: #FF8727;
    		background: #FFFFFF;
    		padding: 10px;
    		padding-left: 20px;
    		border-bottom: 1px solid #FF8727;
    		list-style: none;
    	}
     
    	li:hover {
    		color: #CCCCCC;
    		background: #FF8727;
    	}
     
    	li:last-child {
    		border-bottom: none;
    	}
     
    	a {
    		text-decoration: none;
    	}
     
    	a:link, a:visited {
    		color: #FFFFFF;
    	}
     
    	/* Lignes de sous-bloc */
    	li a {
    		font-size: 80%;
    	}
     
    	li a:link, a:visited {
    		color: #FF8727;
    	}
     
    	a:hover, li a:hover {
    		color: #CCCCCC;
    		border-radius: 5px;
    	}
     
    	#cat1, #cat2, #cat3, #cat4, #cat5 {
    		position: relative;
    	}
     
    	#cat1 [type="checkbox"]:checked + label + ul, #cat2 [type="checkbox"]:checked + label + ul, #cat3 [type="checkbox"]:checked + label + ul, #cat4 [type="checkbox"]:checked + label + ul, #cat5 [type="checkbox"]:checked + label + ul {
    		display: block;
    	}
     
    	#up {
    		display: block;
    	}
     
    	#link, #link a {
    		display: block;
    	}
     
    	/* Coche */
    	/* Cachons la case à cocher */
    	#main_menu_nav [type="checkbox"]:not(:checked), [type="checkbox"]:checked {
    		position: absolute;  
    		left: -9999px;  
    	}
     
    	/* on prépare le label */
    	#main_menu_nav [type="checkbox"]:not(:checked) + label, [type="checkbox"]:checked + label {
    		padding-left: 150px;
    		padding-bottom: 36px;
    		left: 0;
    		top: 0;
    		cursor: pointer;
    		position: absolute;
    	}
     
    	/* Aspect général de la coche */
    	#main_menu_nav [type="checkbox"]:not(:checked) + label:after, [type="checkbox"]:checked + label:after {
    		content: '\25bc';
    		position: absolute;
    		top: 10px;
    		right: 10px;
    		font-size: 14px;
    		color: #CFCAC5;
    		transition: all .2s; /* Coloration de la coche */
    	}
     
    	#main_menu_nav label:before {
    		opacity: 0;
    	}
     
    	/* Aspect si "pas cochée" */
    	#main_menu_nav [type="checkbox"]:not(:checked) + label:after {
    		opacity: 0; /* coche invisible */
    		transform: scale(0); /* mise à l'échelle à 0 */
    		-webkit-transform: scale(0);
    		-moz-transform: scale(0);
    		-o-transform: scale(0);
    		-ms-transform: scale(0);
    	}
     
    	/* Aspect si "cochée" */  
    	#main_menu_nav [type="checkbox"]:checked + label:after {
    		opacity: 1; /* coche opaque */
    		transform: scale(1); /* mise à l'échelle 1:1 */
    		-webkit-transform: scale(1);
    		-moz-transform: scale(1);
    		-o-transform: scale(1);
    		-ms-transform: scale(1);
    	}
     
    	#main_menu_nav label:hover:before {
    		content: '\25bc';
    		position: absolute;
    		top: 10px;
    		right: 10px;
    		font-size: 14px;
    		color: #FFFFFF;
    		transition: all .2s;
    		opacity: 1; /* coche opaque */
    	}
     
    	/* Coloration des sous-menus */
    	.transition_css {
    		transition: all .4s ease-out;
    		-webkit-transition : all .4s ease-out;
    		-moz-transition: all .4s ease-out;
    		-o-transition: all .4s ease-out;
    		-ms-transition: all .4s ease-out;
    	}
    (...)
    Any idea ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    que veux-tu qu'on puisse tester avec des bouts de code tronqués ?

  3. #3
    Membre éclairé Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut
    Désolé, je pensais que mon pb était suffisamment détaillé pour que vous trouviez le hic sans test...
    Je voulais pas flooder avec des tonnes de codes garbage.

    J'ai modifié le post du dessus.

  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
    Je trouve curieux cette manière de faire un menu vertical (assez simple) de cette façon en mixant des <div>, des <h3> alors que tout devrait tenir dans une simple liste à puce unordered.
    Prendre à gauche et à droite des idées est excellent, mais j'ai du mal à comprendre la logique de ce menu.
    Aie aie aie, Jreaux62 va me démolir j'ai encore rien compris! mais j'ai pas fait d'usine à gaz, moi, pour une fois!

    Ouais, mais c'est quoi un tag A et son intérêt??

  5. #5
    Membre éclairé Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut
    J'ai longtemps cherché un code simple et que je puisse comprendre pour un menu vertical déroulant... Celui-ci n'est pas parfait, mais je commençais à le comprendre...
    Sauf qu'il me restait à bloquer l'ouverture de plusieurs sous-menus et surtout rendre les éléments cliquables.

    Si maintenant vous avez un conseil ou un autre code à me proposer, je suis preneur.
    Je mettais en avant la légèreté et pas de JS.

  6. #6
    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
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    * {
    	box-sizing: border-box;		/* taille des boites width= contenu + padding + border */
    }
    body {
    	font-family: "Times New Roman", Times, serif;
    	font-size: 100%;
    }
    h1	{
    	text-align:center;
    }
    /* =====================================================================================*/
    nav {
     
    }
    nav > ul {
    	width: 306px;
    	margin:0 auto;
    }
    nav ul {
    	list-style-type: none;
    	padding:0; 		
    }
    nav a {	
    	width: 100px;	
    	display: inline-block;
    	line-height: 38px;
    	font-size: 16px;
    	text-align: center;
    	background-color: #F90;
    	color: #000;
    	text-decoration: none;
    }
    /* =====================================================================================*/
    /* ==============            définition du premier niveau          =====================*/
    /* =====================================================================================*/
    nav > ul > li {
    	float:left;						
    	border-right: 2px solid transparent;
    }
    nav li ul li {
    	border-top : 2px solid transparent;		
    }
    nav li 		{
    	position:relative;
    }
    nav li ul {
    	position: absolute;
    	z-index:999;			
    }
    nav li ul ul {
    	margin : -40px 0 0 100px;
    }
    nav li ul ul 	{
    	border-left:2px solid transparent;
    }
    nav li ul,
    nav li:hover ul ul 		{
    	display: none;	
    }
    nav li:hover ul,
    nav ul ul li:hover ul  {
    	display: block;							
    }
    nav a:hover {
    	background: #900;
    	color:#fff;
    	text-decoration: underline;	
    }
    Et une liste à puce sur 3 niveaux ...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <nav>
      <ul>
        <li><a href="#">Item 1</a>
          <ul>
            <li><a href="#">Item 1.1</a>
              <ul>
                <li><a href="#">Item 1.1.1</a></li>
                <li><a href="#">Item 1.1.2</a></li>
                <li><a href="#">Item 1.1.3</a></li>
              </ul>
            </li>
            <li><a href="#">Item 1.2</a>
              <ul>
                <li><a href="#">Item 1.2.1</a></li>
                <li><a href="#">Item 1.2.2</a></li>
                <li><a href="#">Item 1.2.3</a></li>
              </ul>
            </li>
            <li><a href="#">Item 1.3</a>
              <ul>
                <li><a href="#">Item 1.3.1</a></li>
                <li><a href="#">Item 1.3.2</a></li>
                <li><a href="#">Item 1.3.3</a></li>
              </ul>
            </li>
          </ul>
        </li>
        <li><a href="#">Item 2</a>
          <ul>
            <li><a href="#">Item 2.1</a>
              <ul>
                <li><a href="#">Item 2.1.1</a></li>
                <li><a href="#">Item 2.1.2</a></li>
                <li><a href="#">Item 2.1.3</a></li>
              </ul>
            </li>
            <li><a href="#">Item 2.2</a>
              <ul>
                <li><a href="#">Item 2.2.1</a></li>
                <li><a href="#">Item 2.2.2</a></li>
                <li><a href="#">Item 2.2.3</a></li>
              </ul>
            </li>
            <li><a href="#">Item 2.3</a>
              <ul>
                <li><a href="#">Item 2.3.1</a></li>
                <li><a href="#">Item 2.3.2</a></li>
                <li><a href="#">Item 2.3.3</a></li>
              </ul>
            </li>
          </ul>
        </li>
        <li><a href="#">Item 3</a>
          <ul>
            <li><a href="#">Item 3.1</a>
              <ul>
                <li><a href="#">Item 3.1.1</a></li>
                <li><a href="#">Item 3.1.2</a></li>
                <li><a href="#">Item 3.1.3</a></li>
              </ul>
            </li>
            <li><a href="#">Item 3.2</a>
              <ul>
                <li><a href="#">Item 3.2.1</a></li>
                <li><a href="#">Item 3.2.2</a></li>
                <li><a href="#">Item 3.2.3</a></li>
              </ul>
            </li>
            <li><a href="#">Item 3.3</a>
              <ul>
                <li><a href="#">Item 3.3.1</a></li>
                <li><a href="#">Item 3.3.2</a></li>
                <li><a href="#">Item 3.3.3</a></li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
    </nav>
    Et cela devrait aussi fonctionner avec 4 ou 5 niveaux si on rajoute le css pour display:none et display:block
    désolé, pas le temps de mettre des commentaires au css ce matin.

    ps: j'ai toujours pas compris ce qu'est un tag A?

Discussions similaires

  1. menu en html/css
    Par bouchra19 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 03/07/2012, 11h37
  2. Menu vertical déroulant CSS
    Par Aedonya dans le forum Webdesign & Ergonomie
    Réponses: 5
    Dernier message: 23/01/2011, 21h31
  3. Menu vertical en CSS : dérouler en glissant
    Par Invité dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 19/06/2010, 12h33
  4. Modification d'un menu vertical HTML
    Par dudule0 dans le forum Mise en page CSS
    Réponses: 43
    Dernier message: 27/03/2008, 15h14
  5. [HTML+CSS] Problème de menu "dynamique"
    Par Invité dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/04/2005, 12h48

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