28172 sujets

CSS et mise en forme, CSS3

Bonjour, j'ai réalisé un menu déroulant basé sur le tutoriel de Alsacreations.
Ça fonctionne avec la technique en javascript :
onmouseover="javascript:montre('smenu1');"onmouseout="javascript:montre();" 
et des ul li pour faire la mise en place ( basé sur une feuille css).

Le problème c'est qu'à chaque fois qu'une page utilisant cette méthode se charge à l'ouverture, on voit apparaître les cases des sousmenus li.
Et je trouve ça très agaçant.
Quelqu'un a-t-il une solution pour empêcher que les sous-menus apparaissent au chargement.
Pour voir le problème ( vous verrez des petites cases jaunes apparaitre à l'endroit du menu) le lien est par ici:
http://www.comediensdelanse.com

le code java:
[#blue]
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block';}
}


et le code css
[#blue]
/* CSS issu des tutoriels  http://css.alsacreations.com  */

menu dl, menu dt, dd, menu ul, menu li {
margin: 0;
padding: 0;
list-style-type: none;
}

#menu{
	float: left;
	width:166px;
	padding: 0px;
	border-bottom: 3px solid #cccccc;
	font: small Verdana,sans-serif;
	margin-top: 1px;
	padding-top: 5px;
	margin-left: 8px;
	border-left: 0px solid #000000;
	border-right: 0px solid #000000;
	height: auto;
    background-color: #CCCCCC;
}
#menu dt:hover{
	background-color: #E0F3F9;
	font-weight: bold;
	text-decoration: none;
}

#menu dt {
	cursor: pointer;
	background: #A9BFCB;
	height: 24px;
	line-height: 24px;
	margin: 2px 0px 1px 0px;
	border-top-color: #888888;
	color: #21536A;
	text-align: left;
	font-weight: bold;
	padding-left: 10px;
	border-top: 2px solid gray;
	border-bottom: 2px;
	border-bottom-color: #888888;
}

#menu dd {
	position: absolute;
	z-index: 100;
	left: 9em;
	margin-top: -1.4em;
	width: auto;
	border: 1px solid gray;
	padding-right: 4px;
	background-color: #FFFFCC;
}

#menu ul {
padding: 2px;
}
#menu li {
	text-align: left;
	font-size: 14px;
	height: 20px;
	line-height: 20px;
	padding-left: 3px;
	float:none !important;
}

#menu li a, #menu dt a {
color: #21536A;
text-decoration: none;
display: block;
}

#menu li a:hover {
	text-decoration: none;
	color: #880000;
	font-weight: normal;
}



puis comment ( en abrégé) j'ai déclaré les divs dans la page html.
[#blue]
<dl id="menu">
  <div align="center"><span class="T12grB">Menu de navigation</span>  </div>
  <dt onmouseover="javascript:montre('smenu1');"onmouseout="javascript:montre();"><a href="index.htm">Saison 2008</a></dt>
			<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();">
				<!--<ul> -->
					<li><a href="index.htm">Accueil</a></li>
					<li><a href="textt2.htm">Présentation de xx</a></li>
				<!--</ul> -->
			</dd>	
			
		<dt onmouseover="javascript:montre('smenu2');" onmouseout="javascript:montre();"><a href="Auteur.htm">L'auteur</a></dt>
		<dd id="smenu2" onmouseover="javascript:montre('smenu2');" onmouseout="javascript:montre();">
				<!--<ul> -->
					<li><a href="Auteur.htm">xx xxxx, l'auteur</a></li>
 etc etc etc  </dl>


Bonsoir Beroalde,

J'ai la flemme de chercher (il me semble avoir déjà vu cette demande dans les sujets traités...) mais je te propose une alternative :

Tandis que le tutoriel actuel concernant les menus déroulants en CSS et Javascript vient d'être déclaré "vieillissant" du fait de ses lacunes et obsolescences, une nouvelle méthode vient d'être publiée par Thomas Dedericks : Créer un menu "accordéon" avec jQuery...

Le tutoriel est accessible, tout comme le résultat semble l'être Smiley cligne

Au passage, deux petits liens qui peuvent aider à résoudre quelques erreurs de codage, d'étourderies, oublis...
http://validator.w3.org/
http://jigsaw.w3.org/css-validator/

Cdt,
Sylvain
6l20 a écrit :
Bonsoir Beroalde,

J'ai la flemme de chercher (il me semble avoir déjà vu cette demande dans les sujets traités...)

J'avais quand même cherché avant, mais mes critères n'étaient peut-être pas assez pointus Smiley decu

a écrit :
mais je te propose une alternative :....... une nouvelle méthode vient d'être publiée par Thomas Dedericks : Créer un menu "accordéon" avec jQuery...


Je vais regarder ça de plus près et je vais modifier mon approche de menu déroulant en menu accordéon. Quelques heures de boulot en perspective... Smiley sweatdrop


a écrit :
Au passage, deux petits liens qui peuvent aider à résoudre quelques erreurs de codage, d'étourderies, oublis...
Sylvain


Merci Sylvain pour ces liens, mes erreurs de codage proviennent surtout de ce foutu menu déroulant.
Je vais y remédier.

merci encore
Béroalde