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 :

positionnement lien dans une div "extensible"


Sujet :

Positionnement en CSS

  1. #1
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut positionnement lien dans une div "extensible"
    Bonjour à tous, alors voila mon problème:

    Je suis en train de faire un menu de type "accordéon", pour ce faire j'ai une div "menu" qui rassemble toutes mes divs qui seront les boutons du menu. Jusque là tout va bien.
    Chacun de ses boutons est en fait constitué de trois divs, une pour le haut de l'image du bouton, une pour le bouton lorsqu'il est étendu et l'autre pour le bas du bouton. Tout va bien, marche bien, mon problème n'a pas de rapport avec le fait d'"étendre" la div donc j'ai volontairement ignoré cette partie dans mon exemple de code.

    Donc le problème est de positionner mon lien dans la partie supérieure du menu. J'ai essayé avec un margin-top sur le lien, absolument sans effet, un padding-top sur le conteneur, qui marche et positionne bien mon mien mais repousse la partie du bas et sépare donc mon bouton en deux parties (très moche). Je ne vois plus trop quoi essayer et j'en appelle a vous.

    Voilà mon code simplifié:

    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
     
    <!DOCTYPE html>
    <html>
    <head>
      <style>
    	.menulinkdiv {
    	width:205px;
    	height:25px;
    	background-image:url('../images/menubtntop2.jpg');
    	background-repeat:no-repeat;
    }
     
    .menulinkdivbottom {
    	background-image:url('../images/menubtnbottom2.jpg');
    	width:205px;
    	background-repeat:no-repeat;
    	height:10px;
    }
     
    .menulinkdiv a:link, .menulinkdiv a:visited, .amenulinkdiv a:hover {
    	color:#fff;
    	font-weight:bold;
    	font-size:14px;
    	text-decoration:none;
    	margin-left:5px;
    	margin-right:5px;
    }
      </style>
    </head>
    <body>
    	<div id="menu">
    		<div id="menutop">&nbsp;</div>
    		<div class="menulinkdiv"><a href="#">mon lien 1</a></div>
    		<div class="menulinkdivbottom">&nbsp;</div>
    	</div>
     
    </body>
    </html>
    et des images pour vous faciliter le test

    http://img705.imageshack.us/img705/6250/menubtntop2.jpg
    http://img577.imageshack.us/img577/3...btnbottom2.jpg

    Voilà, j'attends vos questions/réponses

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 120
    Points : 44 910
    Points
    44 910
    Par défaut
    Bonsoir,
    Donc le problème est de positionner mon lien dans la partie supérieure du menu.
    pas tout bien saisie, le positionnement doit-il être en haut de la DIV contenante ou de la DIV id="menutop"...????

    ??? position:absolute sur la DIV contenante ???

  3. #3
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut
    Non le lien doit être centré verticalement dans la div, on peut ignorer la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="menutop">&nbsp;</div>
    Elle n'apporte rien au problème.

  4. #4
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut
    En fait je veut que le lien ai l'air centré dans la div menulinkdiv

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 893
    Points : 16 346
    Points
    16 346
    Par défaut
    1. Les marges ne fonctionnent pas sur des éléments inline.
    2. Si tu renseignes un padding-top, tu dois en diminuer d'autant la hauteur. En effet, le padding s'ajoute au height hauteur dans le calcul de la hauteur totale de ton élément.

    padding-top : 10px + height : 25px = hauteur 35px

  6. #6
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    1. Les marges ne fonctionnent pas sur des éléments inline.
    2. Si tu renseignes un padding-top, tu dois en diminuer d'autant la hauteur. En effet, le padding s'ajoute au height hauteur dans le calcul de la hauteur totale de ton élément.

    padding-top : 10px + height : 25px = hauteur 35px


    Parfait c'était exactement l'explication qu'il me manquait, tout est rentré dans l'ordre.

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 120
    Points : 44 910
    Points
    44 910
    Par défaut
    Citation Envoyé par Ceddoc Voir le message
    En fait je veut que le lien ai l'air centré dans la div menulinkdiv
    tu peux également utiliser la propriété line-height
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .menulinkdiv {
      line-height : 25px;
      width:205px;
    /*  height:25px;/**/
      background-image:url('../images/menubtntop2.jpg');
      background-repeat:no-repeat;
    }

  8. #8
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    tu peux également utiliser la propriété line-height
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .menulinkdiv {
      line-height : 25px;
      width:205px;
    /*  height:25px;/**/
      background-image:url('../images/menubtntop2.jpg');
      background-repeat:no-repeat;
    }
    Soit je l'ai mal utilisé soit ça ne fonctionne pas avec padding-top

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 120
    Points : 44 910
    Points
    44 910
    Par défaut
    Citation Envoyé par Ceddoc Voir le message
    Soit je l'ai mal utilisé soit ça ne fonctionne pas avec padding-top
    je ne saisi pas trop ce qui ne fonctionne pas...

  10. #10
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut
    J'avais comprit que line height éviterait de jouer avec la hauteur et le padding, mais si c'est juste pour remplacer le height oui ça marche en effet, il y a un intérêt/avantage à utiliser line-height plutôt que height tout seul?

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 120
    Points : 44 910
    Points
    44 910
    Par défaut
    Citation Envoyé par Ceddoc Voir le message
    J'avais comprit que line height éviterait de jouer avec la hauteur et le padding, mais si c'est juste pour remplacer le height oui ça marche en effet, il y a un intérêt/avantage à utiliser line-height plutôt que height tout seul?
    line-height centre verticalement

  12. #12
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut
    Ah alors je connaissais pas et je n'ai pas vu de différence mais comme je n'attendais pas cet effet là je l'ai probablement mal utilisé, je testerais à l'occasion.

    Merci de ton aide

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

Discussions similaires

  1. Lien dans une div masquée
    Par CinePhil dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/07/2012, 10h59
  2. positionner image dans une div ?
    Par ouldfella dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 29/11/2010, 10h20
  3. Depuis un SWF, chargé un lien dans une DIV
    Par Rifton007 dans le forum ActionScript 3
    Réponses: 6
    Dernier message: 10/06/2009, 09h54

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