Bonjour à tous.
je suis en train de mettre en place un menu horizontal déroulant( en js ) , en suivant le tutoriel qu'il y a sur la page d'acceuil d'alsacreation.
Sur , IE7 ça marche niquel , et sur firefox , lorsque j'ouvre un menu déroulant , sa décale mon contenu...
Pourtant , mon menu à un z-index:100 et mon bloc qui se décale a un z-index:1

Comment faire?
merci bye
Modifié par rockt13 (05 Sep 2008 - 21:27)
Bonjour,

rockt13 a écrit :

Comment faire?


En donnant le lien vers la page concernée par exemple Smiley cligne
Salut,

rockt13 a écrit :

Comment faire?
merci bye
Nous donner un lien vers ta page (ou à défaut le code complet pour reproduire ton "bug") serait un bon début. Smiley cligne

Cela dit le point de la FAQ suivant devrait suffire : Comment fonctionne la propriété CSS z-index.

A+


Edit: grillé de 3 secondes ! Smiley biggol
Edit par Igor: Smiley nananere
Modifié par Igor (04 Sep 2008 - 23:19)
Je ne travaille qu'en local , mais je vais vous filer le code pour que vous puissiez voir mon erreur Smiley smile
le css:

*
{
margin:0;
padding:0;
}

body 
{ 
   background-color:#12147d;	/* bleu sombre couleur bannière */
   text-align:center;   
   font-family:Verdana, Arial, Helvetica, sans-serif; /*Polices d’écriture*/ 
   font-size:11px; /*Taille d’écriture*/ 
   padding:0; /*Pour que la page n’ai aucune marge*/ 
   margin:0; /*Pour que la page n’ai aucune marge*/ 
} 

div#img_header
{
   background-image:url("img/img_header.jpg")  ; 
   width:750px; 
   height:150px; 
}
div#img_menu
{
	background-image:url("img/img_menu.jpg")  ;
	width:750px; 
   	height:31px;  
}
div.global
{
	background-color:#FFFFFF;
	width:750px;
	min-height:400;
	margin:0 auto; /* Permet de recentrer sur firefox */
	z-index:5;

}
div.contenu_page
{
	background-color:blue;
	margin:10px auto;	/* pour firefox */
	width:700px;
	min-height:600px;
	z-index: 1;

}
/********************************************************************************/
/**** Menu horizontal deroulant ************************************************/
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: relative; 
top: 10px;
left: 15px;
z-index:100;
width: 100%; /* correction pour Opera */
}
#menu dl {
float: left;
width: 12em;
}
#menu dt {
cursor: pointer;
text-align: center;
font-weight: bold;
/*background: #ccc;
border: 1px solid gray;*/
margin: 1px;
color:#FFFFFF;
}
#menu dd {
display: none;
border: 1px solid gray;
}
#menu li 
{
text-align: center;
/*background: #fff;*/
background-color:#12147d;

}
#menu li a, #menu dt a {
color:#FFFFFF;
text-decoration: none;
display: block;
height: 100%;
border: 0 none;
}
#menu li a:hover, #menu li a:focus, #menu dt a:hover, #menu dt a:focus 
{
/*background: #eee;*/
background-color:#0066FF;
}


l'index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link rel="stylesheet" href="./boulangerie.css" type="text/css" > 

<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>

</head>
<body>
<?
	if(isset($_GET['p']))
	{
		$page=$_GET['p'];
	}
	else
	{
		$page="erreur";
	}
    ?>
<div class="global">
	<div id="img_header"></div>
	<div id="img_menu">
            <div id="menu"><? include("menu.php");  ?></div>
    </div>
    
	<div class="contenu_page">
    	<? include($page.'.php');?>
    </div>
</div>

</body>
</html>

et le menu.php

<dl>
                <dt onmouseover="javascript:montre('smenu1');"><a href="">Fournisseur</a></dt>
         			<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre('');">
                        <ul>
                            <li><a href="index.php?p=liste_fournisseur">Lister</a></li>        
                            <li><a href="index.php?p=form_fournisseur">Ajouter</a></li>
                        </ul>
        
                    </dd>
            </dl>
            
            <dl>			
                <dt onmouseover="javascript:montre('smenu2');"><a href="">Fournitures</a></dt>
                    <dd id="smenu2" onmouseover="javascript:montre('smenu2');" onmouseout="javascript:montre('');">
                        <ul>
                            <li><a href="#">Lister</a></li>        
                            <li><a href="index.php?p=ajout_fourniture">Ajouter</a></li>
                        </ul>
        
                    </dd>
            </dl>
            
            
            <dl>	
                <dt onmouseover="javascript:montre('smenu3');"><a href="">Recettes</a></dt>
                    <dd id="smenu3" onmouseover="javascript:montre('smenu3');" onmouseout="javascript:montre('');">
                            <ul>
                                <li><a href="#">Lister</a></li>        
                                <li><a href="#">Ajouter</a></li>
                            </ul>
            
                    </dd>
            </dl>
        
            
            <dl>	
                <dt onmouseover="javascript:montre('smenu4');"><a href="">Réglages</a>	</dt>
                    <dd id="smenu4" onmouseover="javascript:montre('smenu4');" onmouseout="javascript:montre('');">
                        <ul>
                            <li><a href="#">Unités de Mat. 1er</a></li>        
                            <li><a href="#">Unités de fabrication</a></li>
                            <li><a href="#">Familles de Mat. 1er</a></li>
                            <li><a href="#">Familles de recettes</a></li>

                        </ul>
                    </dd>
            </dl>                   


merci de vous pencher sur mon problème.
En attendant je vais me pencher sur le lien que tu m'as filé.
Modifié par rockt13 (04 Sep 2008 - 23:26)
L'important pour que les membres puissent t'aider serait qu'ils disposent de la totalité des codes html et css, pas de ces extraits, en particulier le code html généré (pas le code avec les includes php, mais le résultat qu'ils produisent).
J'ai pas mis la page form_fournisseur.php et erreur.php , pensant qu'elles seraient inutile.
Les voici donc :
form_fournisseur.php


<form method="POST" >
<table>
<tr><td width="128">Nom ou raison social</td>
    <td width="206"><input type="text" name="realname" size=30></td></tr>
<tr><td>Nom du représentant</td>
    <td><input type="text" name="email" size=30 /></td>
</tr>
<tr><td colspan=2>Adresse<br>
  <textarea COLS=50 ROWS=6 name="message"></textarea>
</td></tr>
<tr><td>Code Postal</td>
    <td><input type="text" name="title" size=6></td></tr>
<tr><td>Ville</td>
    <td><input type="text" name="title" size=30></td></tr>
<tr><td>Telephone</td>
    <td><input type="text" name="title" size=15></td></tr>
<tr><td>fax</td>
    <td><input type="text" name="title" size=15></td></tr>
<tr><td>email</td>
    <td><input type="text" name="title" size=50></td></tr>
</table>
<br> <input type="submit" value="Envoyer"  > 
</form>

Et erreur.php

<p>
 La page demandée est introuvable : <br />
<? echo $page ; ?>

<p>

Voila , là il y à tout le code au complet Smiley smile
Heyoan a écrit :

Edit par Igor: Smiley nananere
hihihi Smiley err

Igor a écrit :

en particulier le code html généré (pas le code avec les includes php, mais le résultat qu'ils produisent).
le formulaire est effectivement inutile mais ça n'est pas le cas de <div id="menu"><? include("menu.php"); ?></div>

Comme c'est déjà laborieux de copier/coller le code pour le tester l'idéal serait d'afficher le source de ta page et de le mettre ici.



Edit: déjà tu as des z-index sur des éléments non positionnés...
Modifié par Heyoan (05 Sep 2008 - 00:13)
Trés bien voici le code source :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gestion Boulangerie v1.0</title>
<link rel="stylesheet" href="boulangerie.css" type="text/css" > 
<script type="text/javascript" src="js/menu.js"></script>


</head>
<body>
<div class="global">
	<div id="img_header"></div>
	<div id="img_menu">

            <div id="menu"><dl>
                <dt onmouseover="javascript:montre('smenu1');"><a href="">Fournisseur</a></dt>
         			<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre('');">
                        <ul>
                            <li><a href="index.php?p=liste_fournisseur">Lister</a></li>        
                            <li><a href="index.php?p=form_fournisseur">Ajouter</a></li>
                        </ul>
        
                    </dd>

            </dl>
            
            <dl>			
                <dt onmouseover="javascript:montre('smenu2');"><a href="">Fournitures</a></dt>
                    <dd id="smenu2" onmouseover="javascript:montre('smenu2');" onmouseout="javascript:montre('');">
                        <ul>
                            <li><a href="#">Lister</a></li>        
                            <li><a href="index.php?p=ajout_fourniture">Ajouter</a></li>
                        </ul>

        
                    </dd>
            </dl>
            
            
            <dl>	
                <dt onmouseover="javascript:montre('smenu3');"><a href="">Recettes</a></dt>
                    <dd id="smenu3" onmouseover="javascript:montre('smenu3');" onmouseout="javascript:montre('');">
                            <ul>
                                <li><a href="#">Lister</a></li>        
                                <li><a href="#">Ajouter</a></li>

                            </ul>
            
                    </dd>
            </dl>
        
            
            <dl>	
                <dt onmouseover="javascript:montre('smenu4');"><a href="">Réglages</a>	</dt>
                    <dd id="smenu4" onmouseover="javascript:montre('smenu4');" onmouseout="javascript:montre('');">
                        <ul>
                            <li><a href="#">Unités de Mat. 1er</a></li>        
                            <li><a href="#">Unités de fabrication</a></li>

                            <li><a href="#">Familles de Mat. 1er</a></li>
                            <li><a href="#">Familles de recettes</a></li>

                        </ul>
                    </dd>
            </dl>                   </div>
    </div>
    
	<div class="contenu_page">

    	
<form method="POST" >
<fieldset>
 <legend> Coordonnées Fournisseurs </legend>

<table>
<tr><td width="128">Nom ou raison social</td>
    <td width="206"><input type="text" name="realname" size=30></td></tr>
<tr><td>Nom du représentant</td>
    <td><input type="text" name="email" size=30 /></td>

</tr>
<tr><td colspan=2>Adresse<br>
  <textarea COLS=50 ROWS=6 name="message"></textarea>
</td></tr>
<tr><td>Code Postal</td>
    <td><input type="text" name="title" size=6></td></tr>
<tr><td>Ville</td>
    <td><input type="text" name="title" size=30></td></tr>
<tr><td>Telephone</td>

    <td><input type="text" name="title" size=15></td></tr>
<tr><td>fax</td>
    <td><input type="text" name="title" size=15></td></tr>
<tr><td>email</td>
    <td><input type="text" name="title" size=50></td></tr>
</table>
<br> <input type="submit" value="Envoyer"  > 
</fieldset>
</form>    </div>
</div>

</body>
</html>

Re',

comme je te disais tu as un z-index sur le conteneur du bas mais il n'est pas positionné. Tu pourrais essayer quelque chose comme
div.contenu_page
{
	position: absolute;
	top: 172px;
	left: 1px;
	padding: 24px;
}

Modifié par Heyoan (05 Sep 2008 - 01:24)
Salut ,
Ce que tu m'as conseillé à l'air de fonctionner.
Le pb , c'est que du coup j'ai l'impression que mon div.global



ne sers plus à rien , car il n'affiche plus le fond blanc...


EDIT:
En fait mon div.global est bien là , mais du coup il ne s'allonge pas , car le contenu page est positioné par rapport à l'absolue et non plus par rapport à global.
Donc comment faire pour que mon div.global , s'allonge en fct de son contenu , c-a-d en fonction de div.contenu_page ? Peut etre en placant contenu page en relative?
Modifié par rockt13 (05 Sep 2008 - 15:35)
Re',

je me rends compte qu'en testant ton code j'avais corrigé plusieurs choses (voir http://validator.w3.org/ ) et j'ai oublié de te parler du position: absolute qui manquait à div#img_menu. Smiley langue

Donc effectivement tu pourrais mettre div.contenu_page en relative ce qui donne :
div.global
{
	position: relative;
}

div#img_menu
{
	position: absolute;
	left: 0;
}

div.contenu_page
{
	position: relative;
	margin-top: 40px;
}
Héllo !
Merci , j'ai testé c'est mieux , mais y a tellement de gros décallage entre IE7 et FF3 que ca devient fatiguant...
snifffffffffff
en plus je ne comprend pas pourquoi , le contenu global ( sur fond blanc ) , ne sétire pas lorsque mon contenu_page s'agrandit... du coup mon contenu page , dépasse mon "global".....arf
On ne doit pas avoir les mêmes déclarations :
*
{
margin:0;
padding:0;
}
body 
{ 
   background-color:#12147d;	
   text-align:center;   
   font-family:Verdana, Arial, Helvetica, sans-serif; 
   font-size: 100%; 
   padding:0; 
   margin:0; 
} 
div#img_header
{
   background-image: url("img/img_header.jpg"); 
   width:750px; 
   height:150px; 
}
div#img_menu
{
	background-image: url("img/img_menu.jpg");
	width:750px; 
   	height:31px; 
	position: absolute;
	z-index: 5;
	left: 0; 
}
div.global
{
	background-color:#FFFFFF;
        font-size: 80%; 
	width:750px;
	min-height:400;
	margin:0 auto;
	position: relative;
	padding-bottom: 45px
}
div.contenu_page
{
	background-color:blue;
	margin:10px auto;
	width:700px;
	min-height:600px;
	position: relative;
	text-align: left;
	top: 40px;
	left: 0;

}
Voici ce que j'ai moi :


*
{
margin:0;
padding:0;
}

body 
{ 
   background-color:#12147d;	/* bleu sombre couleur bannière */
   text-align:center;   
   font-family:Verdana, Arial, Helvetica, sans-serif; /*Polices d’écriture*/ 
   font-size:11px; /*Taille d’écriture*/ 
   padding:0; /*Pour que la page n’ai aucune marge*/ 
   margin:0; /*Pour que la page n’ai aucune marge*/ 
} 

div#img_header
{
   background-image:url("./img/img_header.jpg")  ; 
   width:750px; 
   height:150px; 
}
div#img_menu
{
	background-image:url("./img/img_menu.jpg")  ;
	width:750px; 
   	height:31px;  
	position:absolute;
	left:0;
}
div.global
{
	background-color:white;
	width:750px;

	min-height:400;
	margin:0 auto; /* Permet de recentrer sur firefox */
/*	position:absolute;*/
	position:relative;

}
div.contenu_page
{
	background-color:blue;
	margin:0 auto;	/* pour firefox */
	width:700px;
	min-height:400px;
	z-index: 1;
	position:relative;
	height:500px;
	top:50px;
}


Donc lorsque je met une hauteur plus grande pour contenu_page , ca dépasse "global" et moi je voudrais que global s'étire en fonction de son contenu

ps: du coup tu ne met pas de z-index:0 sur le contenu page?
Modifié par rockt13 (05 Sep 2008 - 20:07)
En fait je te demandais de tester avec ma CSS. Smiley cligne

Pour ce qui est du z-index 0 ou 1 il est facultatif puisque par défaut inférieur au z-index 5.

Il faut virer ton height:500px; qui limite la hauteur de div.contenu_page au lieu de le laisser s'agrandir automatiquement.
J'ai testé ton css !!! Et apparement tout marche niquel !!! par contre j'aimerai comprendre pourquoi ca ne marchais pas avec le mien ?
seulement à cause du height : 500 px ?
Hem... je te laisse chercher : il suffit de rajouter tes déclarations différentes une par une et de voir ce qui change.

Sinon : est-ce qu'on peut dire que ce sujet est [Résolu] ? Smiley biggol Smiley cligne
On peut dire qu'il est résolu Smiley smile
mais je reviendrai bientôt je penses , car je trouve tjrs réponse à mes problèmes.

Encore merci !