28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

J'ai suivi 1 tuto pour la création de menu via css, sans problème particulier.
J'ai tenté de rajouter des sous menus, mais je n'arrive pas à obtenir le résultat souhaité.

Je tente de placer le menu imbrique à droite du <li> en question et non pas en dessous :

Voici le code html :

<ul id="menu">
	<li><span>Notre philosophie</span>
		<ul>
			<li><a href=''>Menu 4 - Article 1</a></li>
			<li><a href=''>Menu 4 - Sous Menu 1</a>
                                <ul>
					<li><a href=''>Sous menu  1 - Article 1</a></li>
					<li><a href=''>Sous menu  1 - Article 2</a></li>
				</ul>
			</li>
		</ul>
	</li>
</ul>



#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éfault de la liste */
	line-height : 21px; /* on défini une hauteur pour chaque élément */
	text-align : center; /* on centre le texte qui se trouve dans la liste */
}

#menu /* Ensemble du menu */
{
	padding-top: 38px;
	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 */
	text-decoration : none; /* on supprime le style par défault des liens (la pluspart du temps = souligné) */
	/*width : 144px; /* largeur */
	padding-left: 30px;
	padding-right: 20px;
}

#menu li /* Elements des listes */	
{ 
	float : left; 
	/* pour ie qui ne reconnait pas "transparent" */
	border-right : 1px solid #fff; /* on met une bordure blanche à droite de chaque élément */
	font-size: 14px;
	line-height: 35px;
	height: 35px;
	white-space:nowrap;
}

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

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


#menu li ul li /* Eléments de sous-listes */
{
	/* pour ie qui ne reconnait pas "transparent" (comme précédement) */
	border: 1px solid #CCCCCC; /* on met une bordure blanche en haut de chaque élément d'une sous liste */
	font-size: 12px;
	background-color: #EEEEEE;
	font-weight: normal;
	text-align: left;
	color: #666666;
	height: 28px;
	line-height: 28px;
	/*width: 200px;*/
	/*padding-left: 10px;*/
	text-indent: 10px;
	float: none;

}

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

#menu li ul ul 
{
	/*margin		: -29px 0 0 144px ; /* On décale les sous-sous-listes qu'elles ne soient pas au dessus des sous-listes */	
	/* pour ie qui ne reconnait pas "transparent" (comme précédement) */
	border-left	: 1px solid #fff ; /* Petite bordure à gauche pour ne pas coller ... */	
}

/* ie ne reconnaissant pas le sélecteur ">" ... je me répète  [cligne] */
html>body #menu li ul ul		
{
	border-left	: 1px solid transparent ; /* on met une bordure transparante sur la gauche de chaque élément */
}

#menu a:hover, #menu li ul a:hover /* Lorsque la souris passe sur un des liens */	
{
	/*color: #005aae; /* On passe le texte en noir ... */
	background: #b1d9ff; /* ... et au contraire, le fond en blanc */
}

#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 */
}


#menu a {
	text-decoration: none;
	color: #000000;
}

#menu a:hover
{
	font-weight: bold;
}

#menu li ul li a {
	padding-left: 0px;
	color: #666666;
}

#menu li ul li a:hover
{
	font-weight: normal;
	text-decoration: underline;
	background-color: #ffffff;
}

#menu li:hover {
	background-image: url('../image/li_hover.png');
	background-repeat: repeat-x;
}

#menu span {
	margin-right: 20px;
    padding-left: 9px;
    padding-right: 16px;
	background: url("../image/menu_fleche_bas.png") no-repeat scroll right center transparent;
	font-size: 14px;
}



Si quelqu'un peux m'orienté, je lui en serait reconnaissant. Smiley smile
Modifié par slayes (03 Jun 2012 - 22:07)