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 :

Réalisation d'un menu aligné à droite


Sujet :

CSS

  1. #1
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut Réalisation d'un menu aligné à droite
    Bonjour,

    je souhaite réaliser un "menu" à droite (en réalité une barre de statut) que je souhaite placer à droite de l'écran.

    Pour cela, je dispose d'une div avec la CSS suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    .stateBar {
    	float: right;
    	position:relative;
    	width:256px;
    	height:96%;
    	padding-right:0px;
    	padding-left:0px;
    	padding-top:10px;
    	padding-bottom:10px;
    	background-color: #FFFFFF;
    	border-left: 1px #999999 solid;
    	z-index:10000;
    }
    A l'intérieur, j'aimerai pouvoir disposer 2 div, l'une à côté de l'autre.

    Représentation grossière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    -----------
    |_  _____  |
    | | |    | |
    |A| |  B | |
    |_| |____| |
    -----------
    Comment dois-je positionner les div A et B pour qu'ils restent côte à côte?
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Par défaut
    salut, tu peux essayer avec float:left et float:right
    Cordialement, Guillaume

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .stateBar div {
    float: right ou left (suivant ce que tu veux)
    }
    Est-ce que ça répond à ta question ?

  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    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
    <!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" xml:lang="fr" lang="fr">
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    	<!-- CSS -->
     
    	<title>Test menu a droite</title>
    	<style type="text/css">
    		.stateBar {
    		    float: right;
    			position:relative;
    			width:270px;
    			height:96%;
    			padding-right:0px;
    			padding-left:0px;
    			padding-top:10px;
    			padding-bottom:10px;
    			background-color: #FFFFFF;
    			border-left: 1px #999999 solid;
    			z-index:10000;
    		}
    		.A {
    			float:left;
    			width:20px;
    			height:96%;
    			background-color:red;
    		}
    		.B {
    			float:right;
    			width:250px;
    			height:96%;
    			background-color:blue;
     
    		}
    	</style>
    </head>
    <body>
    	<div class="statusBar">
    		<div class="A"></div>
    	    <div class="B"></div>
    	</div>
    </body>
    </html>
    Ne donne carrément pas ce que je souhaite obtenir

    Sous IE6, j'ai A à gauche de l'écran, B à droite.
    Sous Chrome, j'ai rien qui s'affiche...
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  5. #5
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Salut Arnaud,

    Bah alors, dans le CSS tu mets stateBar et dans le HTML statusBar, il faut choisir

    Citation Envoyé par Arnaud F. Voir le message
    Sous IE6, j'ai A à gauche de l'écran, B à droite.
    En fait, tes DIV sont vides mais IE6 attribue une hauteur minimale égale à la valeur calculée du line-height, celle-ci dépend du font-size.

    Mais sinon :
    Citation Envoyé par Arnaud F. Voir le message
    Sous Chrome, j'ai rien qui s'affiche...
    Est le comportement correcte.

    En revanche, les height:96%; ne fonctionnement pas si le height du parent direct n'est pas renseigné, on va supposer que c'est le BODY, ce qui donne :

    Code xhtml : 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
     
    <!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" xml:lang="fr" lang="fr">
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    	<!-- CSS -->
     
    	<title>Test menu a droite</title>
    	<style type="text/css">
                    html, body { height:100% }
            
                    .stateBar {
                        float: right;
                            position:relative;
                            width:270px;
                            height:96%;
                            padding-right:0px;
                            padding-left:0px;
                            padding-top:10px;
                            padding-bottom:10px;
                            background-color: #FFFFFF;
                            border-left: 1px #999999 solid;
                            z-index:10000;
                    }
                    .A {
                            float:left;
                            width:20px;
                            height:96%;
                            background-color:red;
                    }
                    .B {
                            float:right;
                            width:250px;
                            height:96%;
                            background-color:blue;
     
                    }
            </style>
    </head>
    <body>
    	<div class="stateBar">
    		<div class="A">test</div>
    	    <div class="B">test</div>
    	</div>
    </body>
    </html>

    Je ne sais pas ce que tu veux faire, mais le positionnement relatif et par conséquent le z-index:10000; me semblent inappropriés ici

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 44
    Par défaut
    Le premier problème vient des height en pourcentage, comme l'a dit Macmillenium.
    Ensuite, il serait également plus logique de mettre tes classes A et B en float du même côté (afin que tes blocs soient collés même s'ils la somme de leur largeur n'atteint pas la largeur du container)

  7. #7
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut


    Ca me donne bien le rendu voulu.

    J'en ai profité pour ôter le position relatif, par contre, pour le z-index, j'aimerai pouvoir l'utiliser et donc, que ce menu soit par-dessus tout...

    J'ai lu que pour utiliser un z-index sur un flottant, il fallait que cet élément soit positionné, or vu qu'il est flottant...

    Je crois que je vais devoir me tourner du côté de Javascript...
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 44
    Par défaut
    Si tu veux que le menu soit par dessus d'autres éléments, il faudrait le mettre en position:absolute; et donc le caler à droite avec right:0;
    Il ne sera pas au dessus d'autres éléments s'il n'est pas en position absolute

  9. #9
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Citation Envoyé par Arnaud F. Voir le message
    J'ai lu que pour utiliser un z-index sur un flottant, il fallait que cet élément soit positionné, or vu qu'il est flottant...
    Cela s'applique à tous les éléments.
    z-index ne peut être attribuer qu'aux éléments positionnés, c-à-d : relative, absolute et fixed.

Discussions similaires

  1. tableau aligné à droite et CSS
    Par MicroPuce dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 07/09/2010, 16h10
  2. Tableau, colonne alignée à droite
    Par progfou dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 7
    Dernier message: 21/05/2006, 17h09
  3. Menu click droit standard en Runtime ?
    Par marot_r dans le forum Runtime
    Réponses: 2
    Dernier message: 19/05/2006, 15h22
  4. Menu clic droit envoyer vers
    Par PapiClod dans le forum Windows XP
    Réponses: 2
    Dernier message: 24/01/2006, 20h50
  5. listbox alignement à droite
    Par Tymk dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/11/2005, 19h56

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