Bonjour !
Je bloque depuis quelques temps sur un problème avec mon code. Je souhaite faire un menu déroulant horizontal et j'ai ces codes (une page hmtl, une page css et une page js) que voici :

HTML
<!DOCTYPE html>
<head>
	<meta charset="utf-8"/>
	<title>Menu</title>
	<link rel ="stylesheet" media="screen" type = "text/css" title="style" href="menu.css" />
		 <script type="text/javascript" src="menu.js"></script>

</head>

<body align="center">
<div id="navigation">
<div id="menu">
	<div class="menu" id="menu1" onclick="afficheMenu(this)">
		<a href="#">Menu 1</a>
	</div>
	<div id="sousmenu1" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
	</div>
	
	<div class="menu" id="menu2" onclick="afficheMenu(this)">
		<a href="#">Menu 2</a>
	</div>
	<div id="sousmenu2" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
	</div>
	
	
	<div class="menu" id="menu3" onclick="afficheMenu(this)">
		<a href="#">Menu 3</a>
	</div>
	<div id="sousmenu3" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
</div>

</body>
</html>


CSS
*{
	margin:0;
	padding:0;
}
#menu{
	width : 150px; /* Largeur du bloc du menu*/
	margin : auto;
	display : inline-block; /*ligne ajoutée*/
}

#menu a {
	display : inline-block; /*ligne ajoutée*/
}

.menu, .sousmenu{
	text-align:center;
}

.menu{
	height:18px;
	width:150px;
	padding:2px 0;
	background:#404040;
	color:#fff;
	display : inline-block; /*ligne ajoutée*/
}

.sousmenu{
	height:18px;
	width:150px;
	padding:1px 0;
	background:#808080;
	color:#fff;
}

.menu a{
	display: inline-block; /*ligne ajoutée*/
	width:100%;
	height:100%;
	color:#fff;
	font-family:arial,sans-serif;
	font-size:12px;
	font-weight:bold;
	text-decoration:none;
	background:#404040;
}
.sousmenu a{
	display:block;
	width:100%;
	height:100%;
	color:#fff;
	font-family:arial,sans-serif;
	font-size:12px;
	font-weight:bold;
	text-decoration:none;
	background:#808080;
}
.menu a:hover, .sousmenu a:hover, .menu a:active, .sousmenu a:active, .menu a:focus, .sousmenu a:focus{
	background:#ca0008;
}


JAVASCRIPT
function afficheMenu(obj){
	
	var idMenu     = obj.id;
	var idSousMenu = 'sous' + idMenu;
	var sousMenu   = document.getElementById(idSousMenu);
	
	/*****************************************************/
	/**	on cache tous les sous-menus pour n'afficher    **/
	/** que celui dont le menu correspondant est cliqué **/
	/** où 5 correspond au nombre de sous-menus         **/
	/*****************************************************/
	for(var i = 1; i <= 5; i++){
		if(document.getElementById('sousmenu' + i) && document.getElementById('sousmenu' + i) != sousMenu){
			document.getElementById('sousmenu' + i).style.display = "none";
		}
	}
	
	if(sousMenu){
		//alert(sousMenu.style.display);
		if(sousMenu.style.display == "block"){
			sousMenu.style.display = "none";
		}
		else{
			sousMenu.style.display = "block";
		}
	}
	
}


Ayant déjà fait des menus horizontaux, j'ai supposé que rajouter des "align-block" suffiraient... mais ce n'est pas le cas. Je ne vois vraiment pas ce que je pourrais faire d'autre...
Merci à la bonne âme qui tentera de m'aider !
Bon, j'ai réussi à avoir un menu horizontal déroulant en mettant un "display : align", mais il me reste un problème : les sous-menus. Ils ne se déroulent pas sous mes catégories...
<!DOCTYPE html>
<head>
	<meta charset="utf-8"/>
	<title>Menu</title>
	<link rel ="stylesheet" media="screen" type = "text/css" title="style" href="menu.css" />
		 <script type="text/javascript" src="menu.js"></script>

</head>

<body align="center">
<div id="navigation">
<div id="menu">
	<div class="menu" id="menu1" onclick="afficheMenu(this)">
		<a href="#">Menu 1</a>
	</div>
	<div id="sousmenu1" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
	</div>
	
	<div class="menu" id="menu2" onclick="afficheMenu(this)">
		<a href="#">Menu 2</a>
	</div>
	<div id="sousmenu2" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
	</div>
	
	
	<div class="menu" id="menu3" onclick="afficheMenu(this)">
		<a href="#">Menu 3</a>
	</div>
	<div id="sousmenu3" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
</div>

</body>
</html>


/*MENU*/
#navigation {
	margin:0;
	padding:0;
}
#menu{
	width : 150px; /* Largeur du bloc du menu*/
	margin : auto;
	display : inline;
}


.menu, .sousmenu{
	text-align:center;
}

.menu{
	height:18px;
	width:150px;
	padding:2px 0;
	background:#404040;
	color:#fff;
	display : inline-block;
}

.sousmenu{
	height:18px;
	width:150px;
	padding:1px 0;
	background:#808080;
	color:#fff;
}

.menu a{
	display: block;
	width:100%;
	height:100%;
	color:#fff;
	font-family:arial,sans-serif;
	font-size:12px;
	font-weight:bold;
	text-decoration:none;
	background:#404040;
}
.sousmenu a{
	display : inline-block;
	width:100%;
	height:100%;
	color:#fff;
	font-family:arial,sans-serif;
	font-size:12px;
	font-weight:bold;
	text-decoration:none;
	background:#808080;
}
.menu a:hover, .sousmenu a:hover, .menu a:active, .sousmenu a:active, .menu a:focus, .sousmenu a:focus{
	background:#ca0008;
}
/*MENU*/

function afficheMenu(obj){
	
	var idMenu     = obj.id;
	var idSousMenu = 'sous' + idMenu;
	var sousMenu   = document.getElementById(idSousMenu);
	
	/*****************************************************/
	/**	on cache tous les sous-menus pour n'afficher    **/
	/** que celui dont le menu correspondant est cliqué **/
	/** où 5 correspond au nombre de sous-menus         **/
	/*****************************************************/
	for(var i = 1; i <= 5; i++){
		if(document.getElementById('sousmenu' + i) && document.getElementById('sousmenu' + i) != sousMenu){
			document.getElementById('sousmenu' + i).style.display = "none";
		}
	}
	
	if(sousMenu){
		//alert(sousMenu.style.display);
		if(sousMenu.style.display == "block"){
			sousMenu.style.display = "none";
		}
		else{
			sousMenu.style.display = "block";
		}
	}
	
}
Bon eh bien j'ai réglé le problème seule en séparant les trois catégories dans des div différents. Si ça peut aider, voilà le résultat :
<!DOCTYPE html>
<head>
	<meta charset="utf-8"/>
	<title>Menubloc</title>
	<link rel ="stylesheet" media="screen" type = "text/css" title="style" href="menubloc.css" />
		 <script type="text/javascript" src="menubloc.js"></script>

</head>

<body align="center">
<div id="navigation">
<div class="boite">
	<div class="menu" id="menu1" onclick="afficheMenu(this)">
		<a href="#">Menu 1</a>
	</div>
	<div id="sousmenu1" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
	</div>
</div>

<div class="boite"> 
	<div class="menu" id="menu2" onclick="afficheMenu(this)">
		<a href="#">Menu 2</a>
	</div>
	<div id="sousmenu2" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
	</div>
</div>

<div class="boite">
	<div class="menu" id="menu3" onclick="afficheMenu(this)">
		<a href="#">Menu 3</a>
	</div>
	<div id="sousmenu3" style="display:none">
		<div class="sousmenu">
			<a href="#">Sous-Menu 1</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 2</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 3</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 4</a>
		</div>
		<div class="sousmenu">
			<a href="#">Sous-Menu 5</a>
		</div>
</div>
</div>

</body>
</html>


/*MENU*/

.boite {
  float: left;
  width: 30%;
  margin: 1em 0;
}

.menu, .sousmenu{
	text-align:center;
}

.menu{
	height:18px;
	width:90%;
	padding:2px 0;
	background:#404040;
	color:#fff;
	display : inline-block;
}

.sousmenu{
	height:18px;
	width:90%;
	padding:1px 0;
	background:#808080;
	color:#fff;
	margin-left: auto;
	margin-right: auto;

}

.menu a{
	display: block;
	width:100%;
	height:100%;
	color:#fff;
	font-family:arial,sans-serif;
	font-size:12px;
	font-weight:bold;
	text-decoration:none;
	background:#404040;
}
.sousmenu a{
	display : inline-block;
	width:100%;
	height:100%;
	color:#fff;
	font-family:arial,sans-serif;
	font-size:12px;
	font-weight:bold;
	text-decoration:none;
	background:#808080;
}
.menu a:hover, .sousmenu a:hover, .menu a:active, .sousmenu a:active, .menu a:focus, .sousmenu a:focus{
	background:#ca0008;
}

#navigation {
	margin : 0;
	padding : 0;
	opacity: 0;
	transition-duration: 1s; /*Pour la transition quand on sort du hover*/
}

#navigation:hover {
	opacity : 1;
	transition-duration: 1s;
}

/*MENU*/

function afficheMenu(obj){
	
	var idMenu     = obj.id;
	var idSousMenu = 'sous' + idMenu;
	var sousMenu   = document.getElementById(idSousMenu);
	
	/*****************************************************/
	/**	on cache tous les sous-menus pour n'afficher    **/
	/** que celui dont le menu correspondant est cliqué **/
	/** où 5 correspond au nombre de sous-menus         **/
	/*****************************************************/
	for(var i = 1; i <= 5; i++){
		if(document.getElementById('sousmenu' + i) && document.getElementById('sousmenu' + i) != sousMenu){
			document.getElementById('sousmenu' + i).style.display = "none";
		}
	}
	
	if(sousMenu){
		//alert(sousMenu.style.display);
		if(sousMenu.style.display == "block"){
			sousMenu.style.display = "none";
		}
		else{
			sousMenu.style.display = "block";
		}
	}
	
}

Modifié par AnnaD (29 Dec 2018 - 18:27)
Meilleure solution