Menu déroulant en CSS – 2

Version améliorée du menu incluant des dégradés et des effets.

 

Feuille de style  CSS :

#menu, #menu ul /* Liste */
	{
        padding : 0; /* pas de marge intérieure */
        margin : 0; /* ni extérieure */
        list-style : none; /* on supprime le style par défaut de la liste */
        line-height : 21px; /* on définit une hauteur pour chaque élément */
        text-align : center; /* on centre le texte qui se trouve dans la liste */
		}

#menu /* Ensemble du menu */
	  {
        font-weight : bold; /* on met le texte en gras */
        font-family : Arial; /* on utilise Arial, c'est plus beau ^^ */
        font-size : 12px; /* hauteur du texte : 12 pixels */
		}

#menu a /* Contenu des listes */
	  {
        display : block; /* on change le type d'élément, les liens deviennent des balises de type block */
        padding : 0; /* aucune marge intérieure */
        background : #3b5998 ; /* couleur de fond */
        color : #fff; /* couleur du texte */
        text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
        width : 200px; /* largeur */
		height : 62px;
		border:1px solid rgba(0,0,0,0.5);
		border-left-width:15px;

		}
#menu a:hover{
		background:-moz-linear-gradient(top,#537DD7,#3b5998);
    	background:-webkit-gradient(linear, left top, left bottom, from(#537DD7), to(#3b5998));
		color:#222;
		font-weight:bold;
		text-decoration:none;
		text-shadow:0px 1px 0px #888;
		background-color:#666;

		}
#menu a:active{
			background:-moz-linear-gradient(top,#6D9BFE,#537DD7);
    	background:-webkit-gradient(linear, left top, left bottom, from(#6D9BFE), to(#537DD7));
		color:#222;
		font-weight:bold;
		text-decoration:none;
		text-shadow:0px 1px 0px #888;
		background-color:#666;
		}

#menu li /* Elements des listes */
	  {
        float : left;
        /* pour IE qui ne reconnaît pas "transparent" */

		}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li
		  {
        border-right: 1px solid transparent ; /* on met une bordure transparente à droite de chaque élément */
		}

#menu li ul /* Sous-listes */
	  {
        position: absolute; /* Position absolue */
        width: 144px; /* Largeur des sous-listes */
        left: -999em; /* Hop, on envoie loin du champ de vision */
		}

#menu li ul li /* Éléments de sous-listes */
	  {
        /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
        border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous liste */
		}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li ul li
		  {
        border-top : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
		}

#menu li ul ul
	  {
        margin    : -22px 0 0 144px ; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes */
        /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
        border-left     : 1px solid #fff ; /* Petite bordure à gauche pour ne pas coller ... */
		}
#menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
{
        left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
}

#menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul  /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
{
        left: auto; /* Repositionnement normal */
        min-height: 0; /* Corrige un bug sous IE */
}
/* IE ne reconnaissant pas le sélecteur ">" ... je me répète😉 */
html>body #menu li ul ul
		  {
        border-left     : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
		}

Code javascript (remarque : il ne change pas)

<pre><ul id="menu">
	<li><a href="#">accueil</a></li>
	<li><a href="#">membres</a>
<ul>
	<li><a href="#">connexion</a></li>
	<li><a href="#">inscription</a></li>
</ul>
</li>
	<li><a href="#">images</a>
<ul>
	<li><a href="#">photos</a></li>
	<li><a href="#">vidéos</a>
<ul>
	<li><a href="#">catégorie 1</a></li>
	<li><a href="#">catégorie 2</a></li>
</ul>
</li>
</ul>
</li>
	<li><a href="#">médias</a>
<ul>
	<li><a href="http://www.youtube.com">vidéos</a></li>
	<li><a href="http://www.deezer.com">musiques</a></li>
</ul>
</li>
	<li><a href="#">plus</a>
<ul>
	<li><a href="https://nerdycode.wordpress.com">site</a></li>
	<li><a href="mailto:xelamail7@gmail.com">nous contacter</a></li>
	<li><a href="#">team</a></li>
	<li><a href="http://www.google.com">recherche</a></li>
</ul>
</li>
	<li></li>
</ul>
<pre>

Le fichier HTML ne change pas non plus. Ainsi vous pourrez comparer les deux styles.😉

Une réflexion sur “Menu déroulant en CSS – 2

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s