28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

Je suis bloqué sur mon menu qui ne veux pas s'afficher au premier plan. Bien souvent quand j'utilise Firebug j'arrive souvent à trouver mon erreur mais la, je bloque vraiment.

Mon menu s'affiche bien mais c'est lorsque je veux le dérouler qu'il passe en dessous de mon bloc.

Voici le html :

<div dojoType="dijit.layout.BorderContainer" class="header" region="top" gutters="false">
	<div dojoType="dijit.layout.ContentPane" class="header_top" region="top">
		<div dojoType="dijit.layout.ContentPane" class="logo" region="left" gutters="false">
			<table border="0" align="left">
				<tr>
					<td width="100"><img src="common/images/logo/logo_agile.png" alt="" /></td>
				</tr>
			</table>
		</div>	
		<div dojoType="dijit.layout.ContentPane" class="login_right" region="right" splitter="false">
			<table border="0" align="left">
				<tr>
					<td width="130" align="center">
						<div dojoType="dijit.layout.ContentPane" class="admin" region="left" ><p class="textlogin">Welcome Admin</p></div>
					</td>
					<td width="60" align="center">
						<div dojoType="dijit.layout.ContentPane" class="about" region="center" href=""><p class="textlogin">About</p></div>
					</td>
					<td width="40" align="center">
						<div dojoType="dijit.layout.ContentPane" class="login" region="right" href=""><p class="textlogin">Login</p></div>
					</td>
				</tr>
				<tr>
					<td colspan="2" width="100" valign="top"><p class="textlogin">Select your language</p></td>
					<td width="10" valign="top">
						<div dojoType="dijit.layout.ContentPane" class="language" region="left" >
							<select name="languages" size="1">
								<option value="Français.html">francais</option>
								<option value="Anglais.html">anglais</option>
								<option value="Allemand.html">allemand</option>
							</select>
						</div>
					</td>	
				</tr>
			</table>    	
		</div>
	</div>
	<div dojoType="dijit.layout.ContentPane" class="header_bottom" region="bottom">
		<ul id="menu">
			<li>
				<a href="#">Home</a>
			</li>     
			<li>
				<a href="#">Applications</a>
					<ul>
						<li><a href="#">.....</a></li>
						<li><a href="#">.....</a></li>
					</ul>
			</li>
			<li>
				<a href="#">Phones</a>
					<ul>
						<li>
							<a href="#">....</a>
					<ul>
						<li><a href="#">catégorie 1</a></li>
						<li><a href="#">catégorie 2</a></li>
					</ul>
						</li>
						<li>
							<a href="#">.....</a>
						</li>
					</ul>
						</li>
						<li>
							<a href="#">Admin</a>
					<ul>
						<li><a href="#">.....</a></li>
						<li><a href="#">.....</a></li>
					</ul>
			</li>
		</ul>
	</div>	
</div>
				
<div dojoType="dijit.layout.ContentPane" class="container" region="center"></div>


et le css

.header{
	width:100%;
	height:123px;

	}

.header_top{
	background: transparent url("../images/header/background.jpg") no-repeat;
	width:100%;
	height:78px;

	}
	
.header_bottom{
	background: transparent url("../images/menu/background_menu.jpg") repeat-x;
	width:100%;
	height:48%;
	padding:0px 0 0 0;
	top: 78px;
	position:absolute !important;
	z-index:1000;
}

#menu, #menu ul /* Liste */     
{
		padding : 0px;
		margin : 0;
		list-style : none; /* on supprime le style par défaut de la liste */
		line-height : 25px; /* on définit une hauteur pour chaque élément */
		text-align : center; /* on centre le texte qui se trouve dans la liste */
}

#menu /* Ensemble du menu */
{
    font-family: Arial;
    font-size: 12px;
    font-weight: bold;
    margin: 10px 0 0;
    vertical-align: middle;
    position: fixed;
}

#menu a /* Contenu des listes */
{
        display : block; /* on change le type d'élément, les liens deviennent des balises de type block */
        padding : 0; /* aucune marge intérieure */
        background : #e1e0df; /* couleur de fond */        
        color : #25364d; /* couleur du texte */
        text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
        width : 144px; /* largeur */
}

#menu li /* Éléments des listes */      
{ 
        float : left; 
        /* pour IE qui ne reconnaît pas "transparent" */
        border-right : 1px solid #25364d; /* on met une bordure blanche à droite de chaque élément */
}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li
{
        border-right: 1px solid #25364d ; /* on met une bordure transparente à droite de chaque élément */
}

#menu li ul /* Sous-listes */
{ 
        position: absolute; /* Position absolue */
        width: 144px; /* Largeur des sous-listes */
        left: -999em; /* Hop, on envoie loin du champ de vision */
}


#menu li ul li /* Eléments de sous-listes */
{
        /* pour ie qui ne reconnaît pas "transparent" (comme précédemment) */
        border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous-liste */
}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li ul li                
{
        border : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
}

#menu li ul ul 
{
        margin    : -22px 0 0 144px ; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes */ 
        /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
        border-left     : 1px solid #fff; /* Petite bordure à gauche pour ne pas coller ... */      
}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li ul ul                
{
        border-left     : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
}

#menu a:hover /* Lorsque la souris passe sur un des liens */    
{
        color: #25364d; /* On passe le texte en noir... */
        background: #c0c2c5;  /* et au contraire, le fond en blanc */
}

#menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
{
        left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
}

#menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul  /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
{
        left: auto; /* Repositionnement normal */
        min-height: 0; /* Corrige un bug sous IE */
}

.container{
	width:100%;
	height:79%;
	background: url("../images/background/background_bottom.jpg") repeat-x scroll bottom;
}


Si quelqu'un à une idée...

Merci beaucoup.
Modifié par etouicmoi (03 Aug 2011 - 16:11)
Bonjour,
Je dis peut-être une bêtise mais si tu mets un z-index sur #menu li en n'oubliant pas de mettre un position : absolute, ça devrait le faire

Sinon niveau sémantique, mettre un z-index :1000, c'est pas génial...?
Modifié par Sylverdragon (03 Aug 2011 - 16:13)
Non ca ne fonctionne pas, et il me met mes onglets les uns en dessous des autres...

J'avais essayer de mettre des position:absolute, et z-index sur toutes les parties de mon menu mais sans succès.
As tu essayé de mettre le z-index 1000 à 1 et le menu à 2?
Il faut mettre absolue ou relative selon la configuration, tu as les 2 donc as toi de bien choisir selon où tu mets le z-index.
Modifié par Sylverdragon (03 Aug 2011 - 16:33)
non toujours rien... mais j'avais remarqué sur firebug que j'ai un element.style:

.dijitBorderContainerPane, .dijitBorderContainerNoGutterPane {
position: absolute !important;
z-index: 2;
}

Qui prend le dessus sur ma css...

Et lorsque j'enlève cette position dans mozilla tout fonctionne bien. Mais je ne sais pas comment enlever la position et le z-index de l'element.style car je n'ai rien dans mon html et js...
Bonjour,

le z-index devrait être appliqué au parent racine du menu positionner en "fixed" me semble t-il .
C'est son positionnement et son z-index par defaut qui sert de reference aux enfants.

Si le conteneur racine du menu est en position: relative, absolute ou fixed et qu'aucun autre élément bénéficie de ce type de positionement sans z-index , alors un z-index:1; suffit a le mettre en avant plan.

C'est simple et vrai dans la majorité des navigateur sauf pour certains si il y a du flash ou formulaire embarqué et inaplicable dans le cas de frame (vrais frames).

Sans le code complet et éventuellement la(ou les) version et nom du/des navigateurs impliqués , difficille d'aller plus loin dans l'analyse de ton défaut d'affichage.

Cordialement, GC
Salutations » @tous

Je dirais même que la base est ridicule » Les z-index ne devraient pas Gouvernés ici.


Cest ouvrture vers le Document:moi ou encore vers Document:toi. Smiley lol
Modifié par zardoz (04 Aug 2011 - 06:38)
Biensûre que je peux dévolloper
IA est forcément une requete Et moi des requetes j'en' vueuzx pas.
Modifié par zardoz (03 Aug 2011 - 23:48)
Comme demandé par gc-nomade voici mon code complet:


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
		<style type="text/css">   
			    @import url(common/css/style_grid.css);
		</style>
		<link rel="stylesheet" type="text/css" href='/dojoTraining/js/dojo/dijit/themes/nihilo/nihilo.css'>
		<link rel="stylesheet" type="text/css" href='/dojoTraining/js/dojo/dojox/grid/resources/nihiloGrid.css'>
		<link rel="stylesheet" type="text/css" href='/dojoTraining/js/dojo/dojox/grid/resources/Grid.css'>
		<link rel="stylesheet" type="text/css" href='/dojoTraining/js/dojo/dojox/grid/Grid.css'>
		<link rel="stylesheet" type="text/css" href='/dojoTraining/js/dojo/resources/dojo.css'>	
		<script type="text/javascript" src="/dojoTraining/js/dojo/dojo/dojo.js" djConfig='isDebug: true, parseOnLoad: true'>
        sfHover = function() {
			var sfEls = document.getElementById("menu").getElementsByTagName("LI");
				for (var i=0; i<sfEls.length; i++) {
				sfEls[i].onmouseover=function() {
					this.className+=" sfhover";
				}
				sfEls[i].onmouseout=function() {
					this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
				}
   		 	}
		}
			if (window.attachEvent) window.attachEvent("onload", sfHover);
		</script>
		<script type="text/javascript">
			dojo.require("dijit.layout.BorderContainer");
			dojo.require("dijit.layout.ContentPane");
			dojo.require("dijit.layout.TabContainer");
            dojo.require("dijit.MenuBar");
            dojo.require("dijit.PopupMenuBarItem");
            dojo.require("dijit.Menu");
            dojo.require("dijit.MenuItem");
            dojo.require("dijit.PopupMenuItem");
            dojo.require("dojo.data.ItemFileWriteStore");
    		dojo.require("dojo.data.ItemFileReadStore");       
    		dojo.require("dojox.grid.DataGrid");
    		dojo.require("dijit.form.CheckBox");
    		dojo.require("dojo.parser");
    		  function doNothing() {
    			    alert('not actually doing anything, just a test!');
    			  }
    	</script>
	<body class="nihilo">	
		<div dojoType="dijit.layout.BorderContainer" class="main" gutters="false">
			<div dojoType="dijit.layout.BorderContainer" class="header" region="top" gutters="false">
				<div dojoType="dijit.layout.ContentPane" class="header_top" region="top">
					<div dojoType="dijit.layout.ContentPane" class="logo" region="left" gutters="false">
						<table border="0" align="left">
							<tr>
								<td width="100"><img src="common/images/logo/logo_agile.png" alt="" /></td>
							</tr>
						</table>
					</div>	
					<div dojoType="dijit.layout.ContentPane" class="login_right" region="right" splitter="false">
						<table border="0" align="left">
							<tr>
								<td width="130" align="center">
									<div dojoType="dijit.layout.ContentPane" class="admin" region="left" ><p class="textlogin">Welcome Admin</p></div>
								</td>
								<td width="60" align="center">
									<div dojoType="dijit.layout.ContentPane" class="about" region="center" href=""><p class="textlogin">About</p></div>
								</td>
								<td width="40" align="center">
									<div dojoType="dijit.layout.ContentPane" class="login" region="right" href=""><p class="textlogin">Login</p></div>
								</td>
							</tr>
							<tr>
								<td colspan="2" width="100" valign="top"><p class="textlogin">Select your language</p></td>
								<td width="10" valign="top">
									<div dojoType="dijit.layout.ContentPane" class="language" region="left" >
										<select name="languages" size="1">
											<option value="Français.html">francais</option>
											<option value="Anglais.html">anglais</option>
											<option value="Allemand.html">allemand</option>
										</select>
									</div>
								</td>	
							</tr>
						</table>    	
					</div>
				</div>
				<div dojoType="dijit.layout.ContentPane" class="header_bottom" region="bottom">
					<ul id="menu">
						<li>
							<a href="#">Home</a>
						</li>     
						<li>
							<a href="#">Applications</a>
								<ul>
									<li><a href="#">.....</a></li>
									<li><a href="#">.....</a></li>
								</ul>
						</li>
						<li>
							<a href="#">Phones</a>
								<ul>
									<li>
										<a href="#">....</a>
											<ul>
												<li><a href="#">catégorie 1</a></li>
												<li><a href="#">catégorie 2</a></li>
											</ul>
									</li>
									<li>
										<a href="#">.....</a>
									</li>
								</ul>
						</li>
						<li>
							<a href="#">Admin</a>
								<ul>
									<li><a href="#">.....</a></li>
									<li><a href="#">.....</a></li>
								</ul>
						</li>
					</ul>
				</div>	
			</div>
				
			<div dojoType="dijit.layout.ContentPane" class="container" region="center">
			
				<div dojoType="dijit.layout.ContentPane" class="grid_top" region="top" style="background-color:#25364d;"></div>
					<div dojoType="dijit.layout.ContentPane" class="grid" region="left">
						<span dojoType="dojo.data.ItemFileReadStore" jsId="icStore" url="grid.json" ></span>
							<table id="grid" dojoType="dojox.grid.DataGrid" store="icStore" clientSort="true" style="width: 35em; height: 15em;">
								<thead>
									<tr>
										<th width="15%" field="applicationName">Applications</th>
										<th width="15%" field="state">State</th>
										<th width="15%" field="totalLicenses">Total licences</th>
										<th width="15%" field="usedLicenses">Used licenses</th>
										<th width="40%" field="description">description</th>
									</tr>
								</thead>
							</table>
					</div>
				<div dojoType="dijit.layout.ContentPane" class="est" region="right" style="background-color:#fff;" splitter="false">
					<p class="textblue">Etat du serveur</p> <br>
					<p class="textblue">Etat des Pbx</p> <br>
					<p class="textblue">Etat Db</p> <br>
					<p class="textblue">Etat licences</p> <br>
				</div>
			</div>
			<div dojoType="dijit.layout.ContentPane" class="corporate" region="bottom" splitter="false" style="background-color:#25364d;" gutters="false"><p class="textcorporate">Corporate Flexcom.lu</p>
			</div>
		</div>
	</body>
</html>



@charset "utf-8";

html, body { width: 100%; height: 100%; margin: 0px; 	font-family:Verdana, Arial, Helvetica, sans-serif; 	font-size:12px;}
.main{
	height: 100%;
	margin: 0;
	padding: 0;

}

.textblue {color: #25364d;
	font-size: 12px;
	padding:10px;
}

.textlogin {color: #25364d;
	font-size: 12px;
	margin-top: 0;
}

.textwhite{color: #ffffff;
	font-size: 11px;
	width: 100%;
}

.textcorporate{color: #ffffff;
	font-size: 10px;
	width: 100%;
}

	
.header{
	width:100%;
	height:123px;

	}

.header_top{
	background: transparent url("../images/header/background.jpg") no-repeat;
	width:100%;
	height:78px;

	}
	
.header_bottom{
	background: transparent url("../images/menu/background_menu.jpg") repeat-x;
	width:100%;
	height:48%;
	padding:0px 0 0 0;
	top: 78px;
}

.logo{
	float:left;
    height: 65px;
	margin:5px 0 0 20px;
    width: 300px;
    }

.login_right{
	background: url("../images/header/background_login.png") no-repeat;
    float: right;
    height: 80px;
    width: 315px;
    margin-top: -5px;
    }

.admin{ 
    height: 100%;
    margin: 5px;
    vertical-align: middle;
    width: 100%;

	}

.login{
	width:100%;
	height:100%;

	}

.language{color: #25364d;
	font-size: 12px;

	}
	
	
#menu, #menu ul /* Liste */     
{
		padding : 0px;
		margin : 0;
		list-style : none; /* on supprime le style par défaut de la liste */
		line-height : 25px; /* on définit une hauteur pour chaque élément */
		text-align : center; /* on centre le texte qui se trouve dans la liste */
}

#menu /* Ensemble du menu */
{
    font-family: Arial;
    font-size: 12px;
    font-weight: bold;
    margin: 10px 0 0;
    vertical-align: middle;
    position: fixed;
    z-index:1;
}

#menu a /* Contenu des listes */
{
        display : block; /* on change le type d'élément, les liens deviennent des balises de type block */
        padding : 0; /* aucune marge intérieure */
        background : #e1e0df; /* couleur de fond */        
        color : #25364d; /* couleur du texte */
        text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
        width : 144px; /* largeur */
}

#menu li /* Éléments des listes */      
{ 
        float : left; 
        /* pour IE qui ne reconnaît pas "transparent" */
        border-right : 1px solid #25364d; /* on met une bordure blanche à droite de chaque élément */
}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li
{
        border-right: 1px solid #25364d ; /* on met une bordure transparente à droite de chaque élément */
}

#menu li ul /* Sous-listes */
{ 
        position: absolute; /* Position absolue */
        width: 144px; /* Largeur des sous-listes */
        left: -999em; /* Hop, on envoie loin du champ de vision */
}


#menu li ul li /* Eléments de sous-listes */
{
        /* pour ie qui ne reconnaît pas "transparent" (comme précédemment) */
        border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous-liste */
}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li ul li                
{
        border : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
}

#menu li ul ul 
{
        margin    : -22px 0 0 144px ; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes */ 
        /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
        border-left     : 1px solid #fff; /* Petite bordure à gauche pour ne pas coller ... */      
}

/* IE ne reconnaissant pas le sélecteur ">" */
html>body #menu li ul ul                
{
        border-left     : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
}

#menu a:hover /* Lorsque la souris passe sur un des liens */    
{
        color: #25364d; /* On passe le texte en noir... */
        background: #c0c2c5;  /* et au contraire, le fond en blanc */
}

#menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
{
        left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
}

#menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul  /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
{
        left: auto; /* Repositionnement normal */
        min-height: 0; /* Corrige un bug sous IE */
}
	
	
	
	

.container{
	width:100%;
	height:79%;
	background: url("../images/background/background_bottom.jpg") repeat-x scroll bottom;
}

.grid_top{
    height: 6%;
    margin: 10px 0 0 10px;
    width: 98%;
}

.grid{
	float:left;
	width:82%;
	height:73%;
	margin-left:10px;
}

.est{
	border:2px solid #25364d;
	float:right;
	width:14%;
	height:73%;
	text-align:left;
	line-height:8px;
	margin-right:17px;
	margin-top:-2px;
	padding:10px;
	float:right;
	}

.corporate{
	min-height:2%;
	text-align: center;
	line-height:1px;
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	}


Merci pour votre aide...[/i][/i]
bonjour,

Je n'ai pas rapatrié la librairie dojo, cependant , au test CSS dans FF, le menu reste bien en avant plan.
Une erreur dans les javascript : (balise d'ouverture manquante) :
<script type="text/javascript" src="/dojoTraining/js/dojo/dojo/dojo.js" djConfig='isDebug: true, parseOnLoad: true'>
<!-- ici , balise d'ouverture manquante ==> <script type="text/javascript" > -->
        sfHover = function() {
// .......


Soumettre la page au validateur du W3C serait probablement utile.

Cordialement
Oui en effet c’était ça il y avait un problème avec la déclaration du javascript.

Mais maintenant c'est ma grid qui ne s'affiche pu... mais ca c'est un autre sujet je pense.

Je vais essayer de chercher ca! en tout cas merci pour votre aide!
Re bonjour a tous.

Je sais que ca fait un petit bout de temps mais j'avais trouvée une solution afin que mon menu s'affiche correctement.
Mais la bidouille ne fonctionne jamais très longtemps.

Donc je reviens vers vous car je n'ai toujours pas résolu mon problème.

Mon menu déroulant passe toujours en dessous de mon container.

J'ai toujours le même code.

S'il vous plait j'ai besoin d'un petit coup de pouce..

Merci
Modifié par etouicmoi (22 Aug 2011 - 09:25)