28112 sujets

CSS et mise en forme, CSS3

Pages :
Bonjour,
Alors, voilà, c'est la dernière et ultime dernière étape pour mon site, et je vais avoir besoin d'un petit coup de main pour mon menu.
J'ai fait un menu déroulant en CSS, tout marche nickel sous Safari et FireFox, et évidemment mal sous IE (encore merci Bill!).
Alors, ce qui ne fonctionne pas, ce sont les :hover qui ne fonctionne que sur les liens avec IE.
Ma feuille CSS est dynamique, donc je me suis dit qu'il serai possible de tester quel navigateur est utilisé, et si c'est IE, on applique tel style au menu (pour le menu seulement, le reste fonctionne, enfin, pour l'instant...).

Donc, voici la partie CSS concernant le menu, je vais mettre aussi un exemple du code xHTML qui va avec.


#menu
			{
				background: #181A12;
				float: left;
				width: 200px;
			}
			#menu a
			{
				color: #FF6533;
				display: block;
				padding: 10px;
				line-height: 1.5;
				font-size: .9em;
				text-decoration: none;
			}
			#menu p
			{
				color: #FF6533;
				padding: 10px;
				line-height: 1.5;
				font-size: .9em;
				text-decoration: none;
			}
			#menu ul
			{
				
				margin: 0;
				padding: 20px 10px;
				width: 180px;
				list-style: none;
			}
			#menu ul li:hover
			{
				position: relative;
				background: #000000;
				padding: 0px 0px 0px 5px;
				font-weight: bold;
			}

			#menu ul li.sous_menu:hover
			{
				background: url(images/fleche2.png) #000000 no-repeat right center;
			}
			#menu ul ul
			{
				position: absolute;
				top: -10px;
				left: 180px;
				display: none;
				padding: 10px;
				margin: 0;
			}
			.sous_menu
			{
				background: url(images/fleche.png) right center no-repeat;
			}
			
			#menu ul.niveau1 li.sous_menu:hover ul.niveau2,
			#menu ul.niveau2 li.sous_menu:hover ul.niveau3,
			#menu ul.niveau3 li.sous_menu:hover ul.niveau4
			{
				display: block;
				background-color: #181A12;
				font-weight: lighter;
				border: solid 1px #2C2F22;
			}


Et le xHTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
		<title>Menu</title>
		<meta http-equiv="Content-Type" content="text/php; charset=UTF-8" />
		<meta http-equiv="Content-Language" content="fr" />
		<link rel="stylesheet" type="text/css" href="styles.css" media="screen" />
	</head>
	
	<body>
		<div id="menu">
			<ul class="niveau1">
			<li>
				<a href="accueil">ACCUEIL</a>
			</li>
			<li>
				<a href="services">SERVICES</a>
			</li>
			<li class="sous_menu">
				<p>RESSOURCES <br/>ELECTRONIQUES</p>
				<ul class="niveau2">
				<li class="sous_menu">
					<p>Internes</p>
					<ul class="niveau3">
					<li>
						<a href="astia_lavoisier">Astia / Lavoisier</a>
					</li>
					<li>
						<a href="biblioplanets">Biblioplanets / GlobC (URA 1875)</a>
					</li>
					<li>
						<a href="siam">SIAM</a>
					</li>
					</ul>
				</li>
				<li class="sous_menu">
					<p>Externes</p>
					<ul class="niveau3">
					<li>
						<a href="moteurs_recherches">Moteurs de recherches</a>
					</li>
					<li class="sous_menu">
						<p>Bases de données</p>
						<ul class="niveau4">
						<li>
							<a href="archives">Archives</a>
						</li>
						<li>
							<a href="cours">Cours</a>
						</li>
						<li>
							<a href="e_book">E-book</a>
						</li>
						</ul>
					</li>
					</ul>
				</li>
				</ul>
			</li>
			<li class="sous_menu">
				<p>CATALOGUES</p>
				<ul class="niveau2">
				<li>
					<a href="cat_internes">Internes</a>
				</li>
				<li class="sous_menu">
					<p>Externes</p>
					<ul class="niveau3">
					<li>
						<a href="cat_generaux">Généraux</a>
					</li>
					<li>
						<a href="cat_theses">Thèses</a>
					</li>
					</ul>
				</li>
				</ul>
			</li>
			<li class="sous_menu">
				<p>WEB UTILE</p>
				<ul class="niveau2">
				<li>
					<a href="liens">Liens</a>
				</li>
				<li>
					<a href="actualites">Actualités</a>
				</li>
				<li>
					<a href="tutoriels">Tutoriels</a>
				</li>
				</ul>
			</li>
			<li>
				<a href="open_access">OPEN ACCESS</a>
			</li>
			<li>
				<a href="themes_couverts">THEMES COUVERTS</a>
			</li>
			</ul>
		</div>
	</body>
</html>


Vous pouvez facilement le tester, suffit de copier/coller le code dans un fichier 'styles.css' pour l'un et 'ce_que_vous_voulez.html' pour l'autre, de mettre ça dans le même répertoire et de l'ouvrir dans le navigateur. Il devrai fonctionner parfaitement sous Firefox et safari, et pas sous IE.

Donc il me faudrai faire une nouvelle partie CSS spéciale pour IE (TEST du navigateur avec PHP, puis echo de la partie adéquat) juste pour ce menu. Mais comment faire? Rendre tous mon menu sous forme de lien pour pouvoir utiliser :hover?

merci de votre contribution, il faut vraiment que je termine ce site, c'est la dernière étape pour qu'il soit vraiment fonctionnel à 100% (bon, euh 99%, personne n'est parfait...)
Modifié par mini_gspot (02 Jun 2009 - 14:29)
Non tu n'as pas le choix. Utilise un javascript qui rajouterais une class sur les li au survol et au focus (accès par tabulation).

recherche sfhover sur google.
Salut,

mini_gspot a écrit :
Vous pouvez facilement le tester, suffit de copier/coller le code dans un fichier 'styles.css' pour l'un et 'ce_que_vous_voulez.html' pour l'autre

Ca m'étonnerait, vu que tu y as mis du PHP. Pour tester facilement, il nous faut du code HTML/CSS sans langage serveur.


De plus, il faut à tout prix arrêter de vouloir tout faire en full CSS, surtout pour ce genre de menu où le Javascript est plus qu'approprié.
Oups, désolé, j'avais oublié de virer cette partie de php, maintenant, c'est bon, elle est plus là, vous pouvez tester sans problèmes.
Pour le JavaScript, je peux pas, j'ai pas le choix, ce sont les conditions de mon projet (je suis en stage de fin d'année).
Donc, je dois me contenter de xhtml, css et php...
Je vais voir cet après midi du côté de sfhover, je connais pas, merci du conseil!
Modifié par mini_gspot (26 May 2009 - 12:38)
Bon, j'ai réussi à faire marcher une petite fonction que j'ai trouver sur php.net, ça me permet de savoir si le navigateur est IE ou pas, comme ça, je peux appliquer un style dans le cas ou c'est IE, et un autre (en fait, celui que j'ai déjà fait et qui marche) dans le cas ou c'est un autre navigateur (Ici, dans l'entreprise, il y a beaucoup de Mac (Safari) et de Linux avec Firefox).

voici le petit bloc:

<?php
	if(preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT'])) 
    { 
        include('styles_menu_ie.php'); 
    } 
    else
    {
    	include('styles_menu.php');
    }
?>


Du coup, j'ai enlevé tout le code de mon menu et je l'ai mis dans le fichier 'styles_menu.php' .
Maintenant il faut que je fasse le style du menu dans le cas de IE, je sent que je vais me prendre la tête longtemps avec!! Si y en a qui veulent bien me filer un petit coup de pouce, le but serai d'arriver à avoir le même comportement que celui défini pour les autres navigateurs...

Merci de votre contribution!!
Salut,

mini_gspot a écrit :
Bon, j'ai réussi à faire marcher une petite fonction que j'ai trouver sur php.net,
hum... c'est vraiment se compliquer la vie de faire ça en PHP puisque les commentaires conditionnels servent justement à ça. Smiley cligne

D'ailleurs c'est anormal d'avoir 2 feuilles de styles complètement différentes IE/pas IE puisque par exemple IE8 devrait interpréter de la même façon que FF3. Il faudrait logiquement une feuille de styles générique pour les navigateurs respectueux des standards et éventuellement quelques corrections pour IE6 ou IE7.
Modifié par Heyoan (26 May 2009 - 15:07)
Merci, je ne connaissais pas du tout les 'commentaires conditionnels'.

Par contre, c'est au niveau du xHTML que ça se passe, et pas au niveau CSS, donc avec cette solution, il faudrait que je fasse interpréter par ie un chemin différent pour le choix de la feuille CSS, et donc je devrai en faire une nouvelle entièrement pour ie...

<!--[if IE]>
	<link type="text/css" rel="stylesheet" href="styles-ie.css" />
<![ endif]-->


Petite précision, le bloc php que j'ai poster juste avant se trouve dans la feuille CSS.

Et comment faire avec les commentaires conditionnels pour que ie n'interprète pas ce qui ne le concerne pas, comme par exemple, le chemin de la feuille CSS prévu pour les autres navigateurs, qui n'est du coup pas mis en commentaire, vu qu'il faut bien que les autres aient un chemin vers celle-ci?

Et pour ie8, ne sera-t'il pas capable d'interpréter ce qui lui était demander quand il était encore à la version 7? Sinon, en effet, va falloir être plus précis dans les tests de navigateurs pour en prendre compte...

En attendant, dans l'entreprise où je suis, il n'y a pas d'ie8, et vu que les gens ici ne se prennent pas la tête à faire des mises à jour de leurs navigateurs, j'aurai le temps de me préparer à l'arrivé du 8, donc dans l'immédiat, faut que je le rende compatible ie7 vite... Il faut que ce site soit actif d'ici vendredi...

Au pire, je pourrai encore bidouiller dans mon coin plus tard avec ie8, opera (personne n'a ça ici, mais bon, faudra passer le temps...) et autres...

Merci vraiment beaucoup de vous intéresser à mon problème, Smiley biere à la votre! vous l'avez bien mérité!
Modifié par mini_gspot (27 May 2009 - 10:46)
Bon, j'ai encore avancé dans ma quête, et c'est presque terminé.

Par contre, là; je vais vraiment avoir besoin de votre aide.

Donc, voila où j'en suis : Comme ie est incompétent avec les ':hover' et qu'il ne le gère que pour les balises de liens <a>, je me suis dit que j'allai virer toutes les balises <p> de mon menu et les remplacer par des balises <a> mais qui ne renvoient sur rien.
Donc logiquement, ie est maintenant capable de comprendre qu'il doit faire quelque chose quand la souris passe au dessus de ce 'lien'.

Ca m'a pas mal arranger de choses, mais je bute désormais sur un nouveau problème... c'est là que je vais avoir besoin de votre aide.

Comme vous pouvez le voir dans le script CSS que j'ai poster dans le premier message, il y a ceci :

			#menu ul.niveau1 li.sous_menu:hover ul.niveau2,
			#menu ul.niveau2 li.sous_menu:hover ul.niveau3,
			#menu ul.niveau3 li.sous_menu:hover ul.niveau4
			{
				display: block;
				background-color: #181A12;
				font-weight: lighter;
				border: solid 1px #2C2F22;
			}


C'est en fait le 'coeur' de mon menu, c'est cette partie qui permet de naviguer dans les sous-menu lors du survol de la souris dessus... pas très français ce que je viens de dire, mais vous m'avez sûrement compris...

Comme vous pouvez le voir, il y a du ':hover' sur une balise <li> (et de classe 'sous_menu' mais ça on s'en fou...).
C'est là qu'il va falloir feinter IE et arriver à copier le comportement de cette partie CSS dans un langage pas trop évolué et compréhensible par le sous-doué IE (plus j'en parle, plus il m'énerve...).

Exceptionnellement, j'ai autorisation d'utiliser du JS, mais si vous connaissez une astuce (plus ou moins propre, l'important c'est que ça fonctionne) qui permettrai de feinter IE sans JS, je vous en serai grès éternellement!

PS: petite précision, cette partie ne concerne que IE, donc ne pas se prendre la tête à faire quelque chose qui soit compréhensible par tous les navigateurs, seul IE aura accès à ce bout de script, si je me suis mal exprimé, n'hésitez-pas à me poser des questions, je répondrai vite (si en journée)
Modifié par mini_gspot (27 May 2009 - 11:10)
Rebonjour, alors, j'ai continué mes recherches sur sfhover, très interressent, mais par contre, je serai incapable de l'appliquer à mon site, je ne gère vraiment pas du tout le JS...

J'ai trouvé ce site intéressent, j'aimerai m'en inspiré pour le mien, voici le lien, si vous pouvez m'aidez à adapter ce genre de code pour mon site ce serai vraiment, mais alors vraiment super sympa, là je galère vraiment...

http://www.pompage.net/pompe/deroulants/

Apparemment, cette fonction sfhover permet d'appliquer un style lors du survol des éléments <li>, ça semble être la solution. Merci Masseuro, tu m'as mis sur une bonne piste!

Bien sûr, je ne vous demande pas de faire le travail à ma place, je voudrai juste que vous m'aidiez à voir comment marier cette solution avec mon code montré dans le premier post, après je pourrai faire des test et finir tous le travail...

Merci encore!
Modifié par mini_gspot (27 May 2009 - 12:11)
Smiley prie please, help!
Donc je remet à plat le problème, j'aurai besoin d'aide pour intégrer ce petit JS dans mon menu, j'ai déjà fait plein d'essais, je m'en approche, mais c'est toujours pas bon.

Alors, voici le code d'un menu qui utilise ce JS, avec son CSS, son comportement est très similaire à mon menu dont je vous ai donné le code dans le premier post, le but serai de modifier le code que j'ai récupéré pour que l'affichage ressemble le plus exactement possible au mien.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<title>Menu Déroulant «Suckerfish» - Vertical</title>
	<style type="text/css">

	body {
		font-family: arial, helvetica, serif;
	}
	
	#menu, #menu ul { /* toutes les listes */
		padding: 0;
		margin: 0;
		list-style: none;
		float : left;
		width : 11em;
	}
	
	#menu li { /* tous les items de liste */
		position : relative;
		float : left;
		line-height : 1.25em;
		margin-bottom : -1px;
		width: 11em;
	}
	
	#menu li ul { /* listes de deuxième niveau */
		position : absolute;
		left: -999em;
		margin-left : 11.05em;
		margin-top : -1.35em;
	}
	
	#menu li ul ul { /* listes de troisième niveau et plus */
		left: -999em;
	}
	
	#menu li a {
		width: 11em;
		w\idth : 10em;
		display : block;
		color : black;
		font-weight : bold;
		text-decoration : none;
		background-color : white;
		border : 1px solid black;
		padding : 0 0.5em;
	}
	
	#menu li a:hover {
		color : white;
		background-color : black;
	}
	
	#menu li:hover ul ul,
	#menu li:hover ul ul ul,
	#menu li.sfhover ul ul,
	#menu li.sfhover ul ul ul
	{
		left: -999em;
	}
	
	/* listes imbriquées sous les items de listes survolés */
	#menu li:hover ul,
	#menu li li:hover ul,
	#menu li li li:hover ul,
	#menu li.sfhover ul,
	#menu li li.sfhover ul,
	#menu li li li.sfhover ul
	{
		left: auto;
	}
	
	#content {
		margin-left : 12em;
	}
</style>

<script type="text/javascript"><!--//--><![CDATA[//><!--

sfHover = function() {
	var sfEls = document.getElementById("menu").getElementsByTagName("li");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

//--><!]]></script>

</head>

<body>
<div id="menu">
<ul>

	<li><a href="#">Squaliformes</a>
		<ul>
			<li><a href="#">Echinorhinidés</a>

				<ul>
					<li><a href="#">Echinorhinus brucus</a>

						<ul>	<li><a href="#">Squale bouclé</a></li>
							<li><a href="#">Requin ronce</a></li>
						</ul>
					</li>

					<li><a href="#">Echinorhinus cookei</a>

						<ul>	<li><a href="#">Squale bouclé pacifique</a></li>
							<li><a href="#">Requin à piquant</a></li>
						</ul>
					</li>
					
				</ul>
			</li>
			<li><a href="#">Oxynotidés</a>
				<ul>
					<li><a href="#">Oxynotus paradoxus</a>

						<ul>	<li><a href="#">Humantin</a></li>
							<li><a href="#">Cochon de mer</a></li>
						</ul>
					</li>
					<li><a href="#">Oxynotus bruniensis</a></li>
					<li><a href="#">Oxynotus caribbaeus</a></li>
					<li><a href="#">Oxynotus centrina</a></li>
					<li><a href="#">Oxynotus japonicus</a></li>

				</ul>
			</li>
			<li><a href="#">Squalidés</a>
				<ul>
					<li><a href="#">Squalus acanthias</a></li>
					<li><a href="#">Centroscyllium kamoharai</a></li>
					<li><a href="#">Somniosus microcephalus</a></li>
					<li><a href="#">Centroscymnus coelolepis</a></li>
					<li><a href="#">Etmopterus bullisi</a></li>
					<li><a href="#">Centrophorus lusitanicus</a></li>
					<li><a href="#">Cirrhigaleus barbifer</a></li>
					<li><a href="#">Isistius brasiliensis</a></li>

				</ul>
			</li>
			

		</ul>
	</li>

	<li><a href="#">Orectolobiformes</a>
		<ul>
			<li><a href="#">Parascylliidés</a>
				<ul>

					<li><a href="#">Cirrhoscyllium expolitum </a>
						<ul><li><a href="#">Requin carpette à moustache</a></li></ul>
					</li>
					<li><a href="#">Cirrhoscyllium formosanum</a>
						<ul><li><a href="#">Requin carpette chien</a></li></ul>
					</li>
					<li><a href="#">Cirrhoscyllium japonicum </a>
						<ul><li><a href="#">Requin carpette chat</a></li></ul>
					</li>
					<li><a href="#">Parascyllium collare </a></li>
					<li><a href="#">Parascyllium ferrugineum</a></li>
					<li><a href="#">Parascyllium multimaculatum</a></li>
					<li><a href="#">Parascyllium variolatum</a></li>
				</ul>
			</li>
			<li><a href="#">Brachaeluridés</a>
				<ul>
					<li><a href="#">Brachaelurus waddi </a></li>

					<li><a href="#">Heteroscyllium colcloughi</a></li>
					
				</ul>
			</li>
			<li><a href="#">Orectolobidés</a></li>
			<li><a href="#">Stégostomatidés</a></li>

			<li><a href="#">Hémiscylliidés</a></li>
			<li><a href="#">Rhiniodontidés</a></li>
			<li><a href="#">Ginglymostomatidés</a></li>

		</ul>
	</li>

	<li><a href="#">Carcharhiniformes</a>
		<ul>
			<li><a href="#">Scyliorhinidés</a></li>

			<li><a href="#">Proscylliidés</a></li>
			<li><a href="#">Pseudotriakidés</a></li>
			<li><a href="#">Leptochariidés</a></li>
			<li><a href="#">Hémigaléidés</a></li>
			<li><a href="#">Triakidés</a></li>
			<li><a href="#">Sphyrnidés</a></li>

			<li><a href="#">Carcharhinidés</a></li>
			
		</ul>
	</li>

</ul>
</div>

</body>

</html>


Il n'y a pas grand chose à faire, mais c'est un peu casse tête quand même, merci de votre aide![/i][/i]
Modifié par mini_gspot (28 May 2009 - 11:19)
mini_gspot a écrit :
Pour le JavaScript, je peux pas, j'ai pas le choix, ce sont les conditions de mon projet [...] Donc, je dois me contenter de xhtml, css et php...

mini_gspot a écrit :
intégrer ce petit JS dans mon menu

Heu, faudrait savoir ! Parce que si finalement tu peux utiliser du Javascript, il y a sur le site des exemples de menus déroulants en utilisant et cross-browsers.
Ben je fait ce qu'on me demande de faire, tout simplement. On m'a demander de faire un portail intranet en xHTML, CSS et PHP et d'éviter le JavaScript. Donc comme j'ai pas trop le choix pour faire fonctionner mon menu sous IE, j'essaie d'en mettre un minimum, et qu'en plus il soit utilisé un minimum, c'est pour ça que j'ai ajouter un test en php pour identifier si le navigateur est IE, sinon, ben ça reste en pur xHTML, CSS et PHP...
Voilà, j'espère avoir répondu à ta question.

Je sais qu'il y a sur le site des exemples de menu en JS, et je n'aurai pas poster mon problème si j'avais besoin d'un menu en JS.

Ce morceau de JS fait à peine 10 lignes, c'est nickel, si ça pouvait être moins, ça serai encore plus nickel, et si y'en avais pas besoin du tout pour que IE fasse ce que je lui demande de faire, ce serai parfait.

En tout cas, merci, c'est cool que tu prennes de ton temps pour répondre.

Smiley hippy
Modifié par mini_gspot (28 May 2009 - 12:55)
Salut,

moi j'ai un menu entièrement en css qui fonctionne sous IE 7 (ait pas pu vérifier avec IE 6).

Pour le code html, va sur le lien suivant : http://ovh.loc-at-soft.fr/html/index.html

Pour le code css, le voici :


#menu 
{
	background:url("../Images/bandeau-menu.jpg") no-repeat right top;
	position:absolute;
	height:24px;
	width:798px;
	margin:0px 202px 0;
	padding:0;
	z-index:4;
}


#menu a
{
	color:#FFFFFF;
	font-family:"MyriadPro", Arial, Helvetica, sans-serif;
	font-size:0.9em;
	font-weight:bold;
	text-align:center;
	border-left:dotted;
	border-left-color:#FFFFFF;
	border-left-width:thin;
}

#menu ul 
{
	padding:0; 
	margin:0;
	background:#EB6909;
}

#menu ul li 
{
	position:relative; 
	list-style: none; 
	float:left;
}

#menu ul li ul li
{
	position:relative; 
	list-style: none; 
	float:left;
}

#menu ul ul 
{
	position: absolute; 
	display:none;
	width:99px;
	z-index:4;
}

#menu ul ul ul
{
	position: absolute; 
	display:none;
	width:99px;
	left:99px;
	top:0;
	z-index:4;
}

#menu li a 
{
	text-decoration: none;
	padding:3px 0 6px 0;
	margin-left:-1px;
	margin-right:-1px;
	display:block;
	width:99px;
}

#menu ul.niveau1 li.sousmenu:hover ul.niveau2,

#menu ul.niveau2 li.sousmenu2:hover ul.niveau3 
{
	display:block;
	border:none;
} 


#menu li a:hover, #navigation li a:focus, #navigation li a:active 
{
	background: #EB6909 url("../Images/survol-menu.jpg") left top ;
	height:15px;
	text-decoration:none;
	color:#000000;
	border:none;
}

#menu li.sousmenu:hover
{
	text-decoration:none;
	background:#EB6909;
	width:99px;
	border:none;
}

#menuli.sousmenu:hover a
{
	color:#FFFFFF;
}

#menu li.sousmenu2:hover
{
	text-decoration:none;
	background:#EB6909;
	width:99px;
	border:none;
}

#menu li.sousmenu2:hover a
{
	color:#FFFFFF;
}

#menu li.sousmenu2 a:hover, #navigation li.sousmenu2 a:focus, #navigation li.sousmenu2 a:active
{
	background: #EB6909 url("../Images/survol-menu.jpg") left top ;
	height:15px;
	text-decoration:none;
	color:#000000;
	border:none;
}

#menu li.sousmenu2 ul.niveau3 a:hover, #navigation li.sousmenu2 ul.niveau3 a:focus, #navigation li.sousmenu2 ul.niveau3 a:active 
{
	background: #EB6909 url("../Images/survol-menu.jpg") left top ;
	height:15px;
	text-decoration:none;
	color:#000000;
	border:none;
}


Voilà, j'espère que ça pourra t'aider. Bon courage !
Hello,

mama5 a écrit :
moi j'ai un menu entièrement en css
Le principal problème des menus déroulants full css est qu'il ne sont pas accessibles au clavier (via les tabulations).
Alors là je ne comprend plus rien mama5, nos menu sont quasiment les mêmes, on utilise là même technique, tu utilises du :hover sur des balises <li> et ça marche... pourquoi moi non? c'est pareil!

Par contre, pour l'histoire d'être accessible au clavier, ça n'a pas d'importance car ici, dans l'entreprise où je fais ce site intranet, tous le monde utilise la souris... Smiley jap

Mais alors, pour le menu, vraiment, je suis bluffé, je viens de tester et effectivement, ça fonctionne bien sous ie7, par contre, ça ne fonctionne pas avec ie6, mais bon, ici les Internet-Exploreristes sont pas nombreux, et dans ce petit troupeau la grande majorité est sous IE7, donc, les anciens avec leurs IE6 n'aurons qu'a se mettre à la page, et prendre un Firefox par exemple...

Bon, ben merci, je vais retourner ce code dans tous les sens pour savoir où est la différence avec le mien qui fait que ça marche avec IE7... car, d'après ce que j'ai vu, IE n'est capable de traiter du ':hover' que sur les balises de liens (<a>), et là, c'est comme moi, il y en à sur des balises de ligne de liste (<li>)...et...ça...marche... Smiley fou

Merci beaucoup!!
Si mes souvenirs sont bons (flemme de relire l'ensemble du sujet), personne n'a dit que le problème venait d'IE (toutes versions confondues).
Seuls IE6 et inférieurs ne comprennent pas la pseudo-classe hover sur autre chose que des liens, IE7 et supérieurs s'en sortent très bien.

Donc si ton application est destinée à un usage en interne où tu sais que le parc informatique n'a plus de PC équipé de IE6, tu peux facilement utiliser ce code sans scrupule et sans moyen détourné.
ben pourtant, si tu vas voir le code que j'ai donné dans le premier post, IE7 n'arrive pas à l'interpréter correctement, aucun sous-menu ne peuvent s'ouvrir, alors qu'il repose simplement sur la pseudo-class ':hover'...

Ou alors, il y a juste un tout petit truc qui bloc pour IE7 dans mon CSS, voire dans mon xHTML, mais je n'arrive pas à trouver quoi...
Si ça vous saute aux yeux, surtout, n'hésitez pas à me le dire!!
Modifié par mini_gspot (29 May 2009 - 12:47)
Rebonjour, alors, je viens de faire une grande découverte, en réalité, mon menu fonctionne très bien sous IE7!!! Et oui, je l'ai totalement isolé, juste le menu et sa partie css, j'ai tester sous ie7 et là, magie, ça fonctionne... Mais quand il est au milieu des autres div, la ça ne marche pas, enfin, en réalité, je pense que ça marche mais que les élément qui se déroules sont caché/recouvert par les autres div, et du coup, on ne les voit pas...

Donc il faudrait que je trouve un moyen pour obliger le menu à être au premier plan, j'ai fait quelques recherche et il se trouve que la fonction z-index permet cela.
Donc maintenant mon problème est tout autre: arriver à utiliser correctement le z-index.

le problème est que je ne connaissais pas du tout cette fonction, et apparemment il faut l'utiliser avec 'délicatesse', alors si il y en à parmis vous, cher lecteurs, qui gèrent bien cette fonction, c'est avec plaisir que j'accueillerai vos conseils/ votre aide.

En tout cas, merci mama5, car si tu m'avais pas filer un code qui est quasi-parfaitement le même que le miens en me soutenant que ça marche sous IE7, je serai peut être encore en train de galèrer avec du JS!

Remerci à tous!
moi aussi j'ai utilisé le z-index pour le menu et ainsi il s'affiche correctement sous IE7 mais oui j'ai aussi le même problème que toi sous IE6...

En fait à ce que j'ai compris, la balise z-index fonctionne un peu comme Photoshop avec les calques : plus ton claque est en-dessous des autres, moins il est visible. Avec z-index c'est pareil.
élément 1 = z-index:1; -->ton élément est en-dessous de tous les autres
élément 2 = z-index:2; -->ton élément sera au-dessus de l'élément 1
élément 3 = z-index:3; -->ton élément sera au-dessus des deux éléments 1 et 2.
etc.

J'espère que mon explication a pu t'aider.

Bon courage et si tu as la solution pour le menu avec IE6, je la veux bien !
Pages :