5568 sujets

Sémantique web et HTML

Bonjour

j'ai bien tout copier coller mais quand je vais visualisez monmenu déroulant sur une page web , tout les menu sont dérouler mais ne se réenroule pas.

Kel est le PB

merci
@+
[code]<!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 déroulant horizontal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script type="text/javascript">
<!--
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';}
}
//-->
</script>


<style type="text/css">
<!-- 
/* CSS issu des tutoriels  www.alsacreations.com/articles  */
body {
margin: 0;
padding: 0;
background: white;
font: 80% verdana, arial, sans-serif;
}
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: absolute;
top: 0;
left: 0;
z-index:100;
width: 100%;
}
#menu dl {
float: left;
width: 12em;
}
#menu dt {
cursor: pointer;
text-align: center;
font-weight: bold;
background: #ccc;
border: 1px solid gray;
margin: 1px;
}
#menu dd {
border: 1px solid gray;
}
#menu li {
text-align: center;
background: #fff;
}
#menu li a, #menu dt a {
color: #000;
text-decoration: none;
display: block;
height: 100%;
border: 0 none;
}
#menu li a:hover, #menu dt a:hover {
background: #eee;
}

#site {
position: absolute;
z-index: 1;
top : 70px;
left : 10px;
color: #000;
background-color: #ddd;
padding: 5px;
border: 1px solid gray; 
}

a {text-decoration: none;
color: black;
color: #222;
}
-->
</style>
</head>

<body>

<div id="menu">
	<dl>
		<dt onmouseover="javascript:montre();"><a href="" title="Retour à l'accueil">Accueil</a></dt>
	</dl>
	
	<dl>			
		<dt onmouseover="javascript:montre('smenu1');">Menu 1</dt>
			<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre('');">
				<ul>
					<li><a href="#">Sous-Menu 1.1</a></li>
					<li><a href="#">Sous-Menu 1.2</a></li>
					<li><a href="#">Sous-Menu 1.3</a></li>
					<li><a href="#">Sous-Menu 1.4</a></li>
					<li><a href="#">Sous-Menu 1.5</a></li>
					<li><a href="#">Sous-Menu 1.6</a></li>
				</ul>
			</dd>
	</dl>
	
	
	<dl>	
		<dt onmouseover="javascript:montre('smenu2');">Menu 2</dt>
			<dd id="smenu2" onmouseover="javascript:montre('smenu2');" onmouseout="javascript:montre('');">
				<ul>
					<li><a href="#">Sous-Menu 2.1</a></li>
					<li><a href="#">Sous-Menu 2.2</a></li>
					<li><a href="#">Sous-Menu 2.3</a></li>
					<li><a href="#">Sous-Menu 2.4</a></li>
				</ul>
			</dd>
	</dl>
	
	<dl>	
		<dt onmouseover="javascript:montre('smenu3');">Menu 3</dt>
			<dd id="smenu3" onmouseover="javascript:montre('smenu3');" onmouseout="javascript:montre('');">
				<ul>
					<li><a href="#">Sous-Menu 3.1</a></li>
					<li><a href="#">Sous-Menu 3.2</a></li>
					<li><a href="#">Sous-Menu 3.3</a></li>
					<li><a href="#">Sous-Menu 3.4</a></li>
					<li><a href="#">Sous-Menu 3.5</a></li>
				</ul>
			</dd>
	</dl>
	
	<dl>	
		<dt onmouseover="javascript:montre('smenu4');">Menu 4</dt>
			<dd id="smenu4" onmouseover="javascript:montre('smenu4');" onmouseout="javascript:montre('');">
				<ul>
					<li><a href="#">Sous-Menu 4.1</a></li>
					<li><a href="#">Sous-Menu 4.2</a></li>
					<li><a href="#">Sous-Menu 4.3</a></li>
				</ul>
			</dd>
	</dl>
	
</div>


<div id="site">
	<h1>Menu horizontal déroulant en CSS</h1>
	<p>Testé sous (tested under) Internet Explorer, Netscape, Mozilla, Opera et Firebird</p>
  <p>Il vous suffit d'adapter le code source de cette page &agrave; vos besoins. </p>
<p>Raphaël GOETTER<br />
  <a href="http://www.alsacreations.com">Alsacréations</a><br />
  <a href="http://www.alsacreations.com/articles/deroulant/">Explications / Explanations</a></p>
</div>

</body>
</html>
lol
Il est vrai que ça marche mieux avec le javascript !

A propos de ce code, Raphael, deux petits détails :
- dans IE6 et FireFox, l'item "menu 4" se balade un peu partout lors du survol et de l'ouverture des autres menus, dès que l'agrandissement des caractères le fait passer à la ligne.
- dans IE5.0, les itemps de sous-menus sont séparés par des espaces vides de plusieurs lignes (quelque-soit la taille des caractères). Et lorsque les caractères sont agrandis, ça devient franchement... surprenant quand on déroule les menus.
Modifié le 29 Oct 2004 - 12:28
connecté
Administrateur
Laurent Denis a écrit :

A propos de ce code, Raphael, deux petits détails :
- dans IE6 et FireFox, l'item "menu 4" se balade un peu partout lors du survol et de l'ouverture des autres menus, dès que l'agrandissement des caractères le fait passer à la ligne.

Oui en effet, il faut adapter le menu à une largeur minimale, comme beaucoup de menus.
Je crois que celui-ci s'adapte à du 800x600 mais pour les résolutions inférieures, il faudra réduire la taille des items

Laurent Denis a écrit :
dans IE5.0, les itemps de sous-menus sont séparés par des espaces vides de plusieurs lignes (quelque-soit la taille des caractères). Et lorsque les caractères sont agrandis, ça devient franchement... surprenant quand on déroule les menus.

Oui, je crois que c'est dû à un bug (j'espère ne pas m'avancer trop en écrivant ce mot) : il me semble qu'il faut, pour IE5.0, spécifier la hauteur du lien avec une valeur fixe (dans le code elle est actuellement de 100%).

PS : C'est quoi IE5.0 ? Smiley lol Smiley biggol
connecté
Administrateur
Laurent Denis a écrit :


C'est quoi FireFox ? Smiley hum

Smiley biggol

Je n'ai pas demandé ce qu'était IE, mais IE5.0, mais tu l'avais très bien compris je pense. Smiley smile
Bien-sûr.

Mais IE5.0 est de plus en plus dans la situation de NS4.7 il y a quelques années: encore employé (dans une proportion délicate à estimer) mais de plus en plus considéré comme un navigateur avec lequel il est difficile de traiter.

Donc, plutôt que de l'ignorer ou de le considérer comme quantité négligeable, il y a un parti à prendre:
- le traiter comme NS4.7 (et donc lui masquer les CSS en particulier)
- ou le traiter comme IE5.5-6.0 et faire en sorte que "ça marche".
1ere solution...

Faudrait commencer par moins prendre en compte les papynavigateurs, c'est evident qu'ils ne peuvent pas implémenter les derniers trucs récents donc autant leur faire ignorer...
Modifié le 29 Oct 2004 - 13:22
Administrateur
La je poste depuis un prehistonavigateur (Netscape 3.04/SGI Smiley biggol ). <?xml ... il connait pas et a *chaque* page il cherche a sauvegarder ce fichier inconnu *.js Smiley sleep

J`en conclus que ce navigateur n`est plus trop utilise! (posted from outer space, 10 brumaire de l`XIV)

EDIT from real world: à votre service si vous voulez assurer une compatibilité béton à vos pages Smiley lol