Bonjour tous le monde !

Je travaille pour une société et je souhaitais refaire le design du site afin qu'il soit plus compréhensible.
Pour cela je me suis servie de votre tuto Menu vertical déroulant.

A ceci j'ai rajouté des fonctions include (grâce encore à votre tutoriel) et le site commence à prendre forme.

Mais il me reste deux petits soucis auquels je ne trouve pas de solutions :
- Faire en sorte que le menu "suive" le conteneur, ainsi, si l'utilisateur est en bout de page, il peut toujours accéder au menu, sans avoir à scroller à l'envers.
- Afin que le menu soit plus sympathique visuellement, j'ai changé les couleurs des menus et sous menu.
Mais quand on est sur un menu amenant à des sous-menus, la couleur de fond n'est pas appliquée. J'ai vu une réponse dans le forum parlant de mettre onmouseover et de construire le menu de cette manière, mais onmouseover est-il compatible avec onclick?

Alors, afin de mettre en image tout ceci (parce que je me suis peut-être mal exprimée ^^), je vous donne le lien du site d'essai.

Et voici le code CSS :

<style type="text/css">
<!--
body {
margin: 0;
padding:0;
position: absolute;
width: 100%;
height: 100%;
font-family: Arial, Helvetica, sans-serif;
}
.haut {
width: auto;
height: 126px;
color: #000;
font-size: 36px;
padding: 10px;
background-image: url(Logosansframe.jpg);
background-repeat:no-repeat;
background-position:center;
margin-left: 240px;
}
.conteneur {
height: 338px;
width: 100%;
}
.gauche {
position: absolute;
left: 0;
width: 240px;
height: 338px;
background-image: none;
}
.frame {
margin-left: 240px; /* on place ce bloc à droite du bloc menu de 240px de large */
width: auto;
height: auto;
overflow: auto; /* cette propriété va permettre le scroll de ce bloc */
font-size: 14px;
color: #fff;
}
.bas {
width: auto;
height: 30px;
background-color: #000;
color: #fff;
font-size: 12px;
padding: 10px;
text-align: center;
}

-->

/* CSS issu des tutoriels css.alsacreations.com */
<!-- 
body {
margin: 0;
padding: 0;
background: black;
font: 100% arial, Helvetica, sans-serif;
}
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: absolute;
top: 0;
left: 0;
}
#menu {
width: 15em;
}
#menu dt {
cursor: pointer;
margin: 2px 0;
height: 20px;
line-height: 20px;
text-align: center;
font-weight: bold;
border: 1px solid black;
background: #ccc;
}
#menu dd {
border: 1px solid black;
}
#menu li {
text-align: left;
background: #000;
}

#menu dt a {
color: #000;
text-decoration: none;
display: block;
border: 0 none;
height: 100%;
}
#menu li a {
color: #fff;
font-size: 100%;
text-decoration: none;
display: block;
border: 0 none;
height: 100%;
}
#menu dt a:hover {
background: #ffff66;
}

#menu li a:hover { 
background: #cc9900;
}

.mentions {
font-family: Arial, Helvetica, sans-serif;
position: absolute;
top : 200px;
left : 10px;
color: #000;
background-color: #ddd;
}
-->

</style>



Et voici le code HTML :

<body>

<div class="haut">
.
</div>

<div class="gauche">
<dl id="menu">

		<dt onclick="javascript:montre();"><a href="index.php?page=Accueil">Accueil</a></dt>
			
		<dt onclick="javascript:montre('smenu2');">Nos Produits</dt>
			<dd id="smenu2">
				<ul>
					<li><a href="index.php?page=Afficheurs">Afficheurs</a></li>
					<li><a href="index.php?page=AEC">Balisage de Décoration</a></li>
					<li><a href="#">Balisage de Sécurité</a></li>
					<li><a href="#">Eclairage - Décoration</a></li>
					<li><a href="#">Signalisation</a></li>
					<li><a href="#">Personnalisables</a></li>
					<li><a href="#">Options</a></li>
				</ul>
			</dd>	

		<dt onclick="javascript:montre('smenu3');">Téléchargements</dt>
			<dd id="smenu3">
				<ul>
					<li><a href="#">Fiches Techniques</a></li>
					<li><a href="#">Catalogue</a></li>
					<li><a href="#">Documentation</a></li>
				</ul>
			</dd>

		<dt onclick="javascript:montre();"><a href="#">Contacts</a></dt>
		
		<dt onclick="javascript:montre();"><a href="#">Accès</a></dt>

	
</dl>

</div>

<div class="frame">

<?php 
$pages=array(
   'Accueil'=>'Accueil2',
   'Afficheurs'=>'Afficheurs2',
   'AEC'=>'AEC2',
);
if(isset($_GET['page']) && array_key_exists($_GET['page'],$pages))
   include $pages[$_GET['page']].'.txt';
else
   include 'Accueil2.txt';
?>

</div>

<div class="bas">
  <p>Webmaster : truc bidulle</p>
  <p>Dernière Mise à jour : XX/XX/XX</p>
  <A HREF="http://www.hit-parade.com/hp.asp?site=p482687" TARGET="_blank"><Img border="0" SRC="http://logp.hit-parade.com/logohp1.gif?site=p482687" WIDTH="88" HEIGHT="15"></A>
</div>

</body>


Je précise que je suis une débutante !

S'il vous manque des infos, faites le moi savoir je les mettrais volontier en édit.

Merci d'avance ! Smiley biggrin
Modifié par Ashka (24 Jan 2007 - 11:07)
Salut,

Pour ta première question, pour que le menu reste fixe sur tous les navigateurs, il faudrait que le conteneur qui contient ton menu soit en position fixed. Le problème c'est qu'IE ne reconnait pas cette propriété, doncje t'invite à te rendre à l'adresse suivante qui t'expliquera en détail comment faire :
Position Fixed pour tous les navigateurs !

Pour ta deuxième question, pourrais tu expliquer un peu plus précisément ce que tu cherche, car je n'ai pas compris.
Merci pour ta réponse, je vais voir de ce pas ce qu'il se dit !

Alors pour la seconde question, voici quelques éclaircissements :

Dans le menu, lorsque je passe ma souris sur le menu, j'ai des couleurs qui apparaissent :
- un vieux jaune pour les niveaux 1 du menu
- un orange foncé pour les niveaux 2 menu

Mais pour les niveaux 1 "nos produits" et "téléchargements", aucune couleur n'apparaît, du fait que ce sont ceux qui se déroulent.

En parcourant le forum, quelqu'un avait posé la même question. On lui préconise de placer un onmousehover pour ses lignes de menus, ors pour les miennes je me sers déjà d'un onclick (bref, comme indiqué dans le tuto des menus ^^).
Etant une "bille" en création de site, j'aimerais connaître votre avis pour coloriser ces 2 "cases".

J'espère avoir été plus claire que tout à l'heure ^^

Edit : Merci beaucoup pour le menu qui suit le scroll du conteneur, ça marche top ! Smiley biggrin
Modifié par Ashka (22 Jan 2007 - 15:39)
Ah d'accord, en effet c'est plus clair.

Et bien oui tu peux utiliser deux déclarations javascript dans la même balise, sous la forme suivante :
[b]Exemple :[/b]
<li id="smenu1"  onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();">

Chacune aura son application dans le cas voulu.
Pour toi l'une ne s'appliquera que lorsque la souris sera au survol de cet élément, et l'autre uniquement lorsque la souris aura été cliquée.
Dans mon exemple, lorsque la souris est sur la balise <li> le sous menu "smenu1" s'affiche, et lorsque la souris n'est plus sur la balise <li>, plus rien 'est affiché.

En espérant que celà te soit clair Smiley cligne
Salut,
Mikachu a écrit :
[b]Exemple :[/b]
<li id="smenu1"  onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();">
Attention, le "javascript:" au début de l'attribut n'est pas adapté dans ce cas.

Il est utile pour un lien JavaScript
<a href="javascript:pouet();">Pouet</a>
sachant bien sûr que l'usage de ce genre de liens est déconseillé.

Pour préciser le type de script utilisé dans les attributs de gestion d'événements (onclick, onmouseover, ..), il faut utiliser l'en-tête HTTP Content-Script-Type ou le meta correspondant :
<meta http-equiv="Content-Script-Type" content="text/javascript" />
Merci beaucoup pour ces réponses rapides !

Je vous tiendrai au courant de l'évolution.
Pour le moment, c'est lecture du tuto Javascript et assimilation des données Smiley sweatdrop , histoire de ne pas faire du "copier-coller" bête.
Julien Royer a écrit :
Salut,Attention, le "javascript:" au début de l'attribut n'est pas adapté dans ce cas.

Il est utile pour un lien JavaScript
<a href="javascript:pouet();">Pouet</a>
sachant bien sûr que l'usage de ce genre de liens est déconseillé.

Pour préciser le type de script utilisé dans les attributs de gestion d'événements (onclick, onmouseover, ..), il faut utiliser l'en-tête HTTP Content-Script-Type ou le meta correspondant :
<meta http-equiv="Content-Script-Type" content="text/javascript" />

Ah, je ne savais pas, ma connaissance en la matière est limitée.

Mais bon l'information vient directement des menus d'Alsacréations (ok j'ai attiré l'attention du grand boss, je peux remettre le S) dans lesquels c'est ainsi présenté :
http://css.alsacreations.com/modelesmenus/hd1.htm
http://css.alsacreations.com/modelesmenus/vd1.htm
http://css.alsacreations.com/modelesmenus/vd2.htm

J'avais utilisé cette formulation en l'état pour la V1 de mon site l'année dernière.

Peut être serait-il bon de mettre à jour ces menus alors. Smiley cligne
Modifié par Mikachu (22 Jan 2007 - 17:28)
Mikachu a écrit :
Peut être serait-il bon de mettre à jour ces menus alors Smiley cligne
Ah oui, en effet, merci.

Ceci dit, j'ai entendu parler d'un projet de réécriture de ces tutos, ça tombe bien. Smiley smile
Modifié par Julien Royer (22 Jan 2007 - 17:25)
Administrateur
Mikachu a écrit :
Mais bon l'information vient directement des menus d'Alsacréation

Qu'ai-je cru lire ? Smiley whattha
Juste car je m'en ressers en ce moment,

j'écris donc
<meta http-equiv="Content-Script-Type" content="text/javascript" />
dans mon head
et
<li id="smenu1" onmouseover="montre('smenu1');" onmouseout="montre();">
?
Modifié par Mikachu (22 Jan 2007 - 17:29)
Raphael a écrit :

Qu'ai-je cru lire ? Smiley whattha

Bien au moins j'ai eu ton attention ! Je suis sur que quand tu te connecte tu fais une recherche du terme "Alsacréation" sans le S pour vérifier qu'il n'y a pas de fourbes qui oublient le S Smiley lol
Mikachu a écrit :
(ok j'ai attiré l'attention du grand boss, je peux remettre le S)
Mouarf. Smiley lol Tu joues avec le feu !
Mikachu a écrit :
j'écris donc
<meta http-equiv="Content-Script-Type" content="text/javascript" />
dans mon head
et
<li id="smenu1" onmouseover="montre('smenu1');" onmouseout="montre();">
?
Oui. Smiley smile

D'ailleurs, Validome signale que le meta est manquant.
Administrateur
Mikachu a écrit :

Bien au moins j'ai eu ton attention ! Je suis sur que quand tu te connecte tu fais une recherche du terme "Alsacréation" sans le S pour vérifier qu'il n'y a pas de fourbes qui oublient le S Smiley lol

Cela fait si longtemps que j'ai demandé un script automatique de ce type à Dew :
- signalisation dès qu'un "Alsacréations" sans "s" est posté + bouton "bann" à proximité

Dew a proposé quelque chose de moins radical : faire un remplacement automatique... mais ça gâcherait mon plaisir Smiley murf
Julien Royer a écrit :
Mouarf. Smiley lol Tu joues avec le feu !Oui. Smiley smile

Oui la preuve, voir ci dessous ^^

Raphael a écrit :

Cela fait si longtemps que j'ai demandé un script automatique de ce type à Dew :
- signalisation dès qu'un "Alsacréations" sans "s" est posté + bouton "bann" à proximité

Dew a proposé quelque chose de moins radical : faire un remplacement automatique... mais ça gâcherait mon plaisir Smiley murf

Mmmh et il ne te l'a pas fait encore... Ah les amis c'est plus pareil qu'avant. Avant tu leur prenais le bras en e découpant à la petite cuillère et ils bronchaient pas, maintenant ils sont même plus capable de pondre un misérable petit script Smiley lol
Modifié par Mikachu (22 Jan 2007 - 17:39)
Bonjour tout le monde.

Alors j'ai bien tout lu, j'ai fais des recherches, des tests, j'ai laissé la nuit me porter conseil et du coup ça fonctionne tout simplement en rajoutant une ligne CSS...
#menu dt:hover { background: #ffff66; }
bref, pas de quoi fouetter un chat.

Merci en tout cas pour vos réponses et votre bonne humeur.

Merci tout simplement Alsacréations ! (failli l'oublier, pffiouuu)

A plus
Modifié par Ashka (24 Jan 2007 - 11:13)