IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Position sous-menu déroulant


Sujet :

Positionnement en CSS

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Position sous-menu déroulant
    Bonjour tout le monde,

    J'ai "développé" un petit site il y a de ça quelques temps et j'ai modifié les menus il y a 4 jours. Comme je n'ai pas de réelles bases je commets des erreurs de débutant... L'erreur là, provenait du fait que j'avais fixé la position des sous-menus par rapport au bord de page, en px. Après bidouille tout était beau sur MON ordi. Mais pas sur les autres... Normal en fait... oui, je commence à réfléchir

    Voici mon bout de CSS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    /*CSS menu déroulant
    ---------------------------*/
     
    dt, dl, dd, ul, li {
    	list-style-type: none;
    	margin: 0 2px 0 2px;
    	padding:0;
    }
     
     
    #menu {
    	margin: 25px 0 0 20px;
    	font-size: 16px;
    	font-family: "Trebuchet MS", arial;
    	border-top: 1px solid gray;
    	width: 765px;
    	}
     
     
    #menu dl {
    	float: left;
    	list-style-type: none;
    	}
     
    #menu dl.active
    	{
    	background: url(images/interface/barre_verte.gif) repeat-x 20px;
    	}
     
     
    #menu li {
    	display: inline;
    	}
     
     
    #menu li.active
    	{
    	background: url(images/interface/barre_verte.gif) repeat-x 20px;
    	}
     
    #menu a {
    	color: #00159d;
    	}
     
    #menu a:hover {
    	color: #b04f00;
    }
     
     
    #smenu1, #smenu2, #smenu3, #smenu4, #smenu5, #smenu6, #smenu7, #smenu8, #smenu9 {
    	position: absolute;
    	font-size: 12px;
    	font-family: "comic sans ms", arial;
    	border-top: 1px solid gray;
    	margin-left: 2px;
    	padding-top: 6px;
    	width: auto;
    }
    Pour revenir 2 lignes en arrière, en fait j'avais fixé, dans #smenu1 etc..., left:365 px; et ça fonctionnait sur mon ordi. Pour résoudre le problème j'ai tenté un left: 50% - 400px; (la largeur de ma page faisant 810px). Ca ne fonctionne pas, le retrait de 400px n'a aucun effet Bref, j'ai tenté plusieurs bidouilles mais en vain.

    Pouvez-vous m'aider svp ?

    Voici un bout de html concernant le menu (appel Java) :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <div id="menu">
    	<dl class="active">
    		<dt onmouseover="montre('smenu1');"><a href="index.php">Accueil</a></dt>
    			<dd id="smenu1">
    			</dd>
    		</dt>
    	</dl>
     
    	<dl>			
    		<dt onmouseover="montre('smenu2');"><a href="Infos%20Aero.html">Plateforme</a></dt>
    			<dd id="smenu2">
    				<ul>
    					<li><a href="Infos%20Aero.html">Accès</a></li>
    					<li><a href="Infrastructures.html">Infrastructures</a></li>
    					<li><a href="Redevances.html">Redevances</a></li>
    					<li><a href="Balisage.html">Balisage</a></li>
    					<li><a href="Carburant.html">Carburant</a></li>
    					<li><a href="ATS.html">ATS</a></li>
    					<li><a href="Numeros.html">Numéros</a></li>
    					<li><a href="Telechargements.html">Divers</a></li>
     
    				</ul>
    			</dd>
    	</dl>
    etc....

    et voici le résultat directement sur mon site : http://aeroport.calais.free.fr/

    Vous constatez donc que les sous-menus ne sont pas "collés" à gauche de la page mais débutent tout le temps sous le menu associé.

    Un grand merci à qui pourra m'expliquer ce qui cloche.

    Cdlt

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Essaie en mettant un position:relative sur ton div menu et un left:0 sur tes sous-menus.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Oh génial... en 2 tps 3 mouvements...
    Merci beaucoup...

    Au passage, je me permets de te poser 2 questions :
    1. je ne comprends pas pourquoi ce passage en "relative" a tout changé ?
    2. pourquoi ce que j'avais fait, à savoir left: 50% - 400 px (= centre - demie-largeur de page), n'avait pas l'effet escompté ?

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Le position:relative va dire aux nœuds enfants positionnés (en absolu dans ton cas) de se placer par rapport à lui et non plus par rapport au body par défaut.

    Et je n'ai pas vu dans ton code ni sur ta page de trace du mais une chose est certaine, c'est que tu ne peux pas effectuer d'opérations mathématiques en CSS, donc de dire au left de calculer ça comme ça.
    Il aurait fallut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    left:50%;
    margin-left:-400px;
    Mais la méthode du positionnement relatif est bien meilleure.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Entendu. Franchement merci, à chaque fois que je viens ici j'ai une réponse précise. Bonne continuation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Barre de menu et sous-menu déroulant
    Par Ginko dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 04/07/2008, 07h08
  2. Fermer un sous-menu déroulant
    Par MorrisG dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/07/2008, 09h49
  3. sous menu déroulant - IE & FF
    Par pop_up dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 14/11/2007, 15h36
  4. Comment placer un sous menu déroulant
    Par boo64 dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 10/01/2007, 23h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo