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 :

[CSS] probleme alignement vertical (bis)


Sujet :

Positionnement en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut [CSS] probleme alignement vertical (bis)
    Bonjour, j'ai bien lu le sujet en dessous qui ressemble, mais j'ai pas trouvé la solution a mon probleme:

    sur le Menu1 : mon menu de maintenant.
    Donc comme vous le voyez ca prend une ou 2 lignes (j'ai pas de place pour élargir la case). donc j'ai augmenté la taille de la case (Menu2) seulement comme vous voyez le texte reste en haut.
    J'ai bien essayé avec un line-height mais ca n'a pas fonctionné.

    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
    .menu {
    	border-right: #3465CC 0.1em solid;
    	border-top: #3465CC 0.1em solid;
    	border-left: #3465CC 0.1em solid;
    	border-bottom: #3465CC 0.1em solid;
    	margin: 1em;
    	color: #BCD7F3;
    	font-family: arial;
    	font-weight: bold;
    	background: #3465CC;
    }
    et un bout de .js qui finit la mise en page
    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
    function Chargement() {
      // On va creer les rubriques principales du menu
      for(i=1; document.getElementById("menu"+i) != null; i++) {
        with(document.getElementById("menu"+i).style) {
          position="absolute";
          top="1em";
          left=(i*7.5)+"em";
          width="6.5em";
          height="1.2em";
          textAlign="center";
          margin="0";
          padding="0";
          zIndex="2";
        }
      }
    Voila voila, si quelqu'un a une solution pour centrer le texte .
    Quand le texte est sur 2 lignes c'est bon, mais sur une ligne je voudrais qu'il soit au milieu, et je sais pas si c'est possible?
    merci de l'aide
    Images attachées Images attachées   

  2. #2
    Membre éclairé
    Inscrit en
    Août 2003
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 38
    Par défaut
    Bonsoir,

    C'est quoi comme élément "menu" ? un div ?
    Essaie de rajouter un vertical-align: middle;

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut
    non c'est pas un div.

    un ptit exemple de mon menu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <A href="#" title="menu suivant" onclick="window.open('menu_general_suite.jsp?titre=Menu General (suite)', '_top')">
    			<P class=menu id="menu6"><A href="#" title="menu suivant" onclick="window.open('menu_general_suite.jsp?titre=Menu General (suite)', '_top')">Menu Suivant</A><SPAN>&nbsp;.</SPAN></P>
    		</A>
    J'avais deja touché au line-height et vertical-align, mais pas les 2 en meme temps a voir. Donc j'ai bien ce que je veux quand c'est sur 1 ligne, mais ceux sur 2 lignes ca ne marche plus. (voir image)

    A mon avis il doit pas y avoir moyen, sauf définir un type pour ceux a une ligne et un autre pour ceux sur 2 lignes...


    Edit: bon j'ai trouvé 2 solutions: la première comme j'ai dit, faire 2 type de boites de menu, pour les titres sur une ligne et ceux sur 2, mais je trouvais qu'il y avait trop d'espace dans la boite pour le texte, ca faisait vide.
    donc 2eme solution, rallonger les titres pour les mettre tous sur 2 lignes
    Maintenant ca donne un impression contraire, il y a pu de place mais bon, tant pis...
    Images attachées Images attachées  

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 91
    Par défaut
    Minirom,

    En regardant ton exemple, l'imbrication de 2 balises <a> me semble louche...

    Je te propose donc une solution à partir de zéro et testée sous IE et Firefox :
    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     
    <html>
    <head>
    <title>Untitled</title>
    <script>
    	function init() {
    		height=0
    		for(i=1; document.getElementById("menu"+i) != null; i++) {
    			if (document.getElementById("menu"+i).offsetHeight > height) {
    				height = document.getElementById("menu"+i).offsetHeight;
    			}			
    		}
    		for(i=1; document.getElementById("menu"+i) != null; i++) {
    			if (document.getElementById("menu"+i).offsetHeight < height) {
    				document.getElementById("menu"+i).style.height=height;
    				document.getElementById("menu"+i).style.lineHeight="2";
    			}
    		}
    	}
    </script>
    <style>
    	.menu_bar {
    		background: #BCD7F3;
    		height: 45px;
    		padding: 5px;
    	}
    	.menu {
    		list-style: none;
    		margin: 0;
    	}
    	.menu_item {
    		background: #3465CC;
    		width: 6.5em;
    		text-align: center;
    		float: left;
    		margin: 0 5px 0 5px;
    		vertical-align: middle;
    	}
    	.menu_item a {
    		display: block;
    		color: #BCD7F3;
    		text-decoration: none;
    	}
    </style>
    </head>
    <body onload="init();">
    	<div class="menu_bar">
    		<ul class="menu">
    			<li id="menu1" class="menu_item"><a href="#">Menu 1</a></li>
    			<li id="menu2" class="menu_item"><a href="#">Menu 2 sur 2 lignes</a></li>
    		</ul>
    	</div>
    </body>
    </html>
    C'est du vite fait il y a surement moyen d'amélioré ça

    PS : par contre, ca ne fonctionne pas sous Opera :/

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut
    Oui moi aussi ca me semble louche.
    C'est pas moi qui ai fait le menu, le code existait déjà.
    Mais comme l'application est utilisée depuis un an, j'ai pas envie de changer, ca va déérouter les utilisateurs .

    Je pense savoir pourquoi il a mis 2 fois <a...>
    Il voulais que le texte soit un lien (d'ou le <P...><a...>) et aussi le font soit un lien(on peut cliquer sur la partie bleue) d'ou le premier <a ...>
    C'est vrai que j'ai pas modifié, je vais essayer d'enlever le <a ...> du texte, puisque le premier englobe tout.
    Et j'avoue que je ne comprend pas non plus a quoi sert son span
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .menu SPAN {
    	display: none;
    }

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut
    Citation Envoyé par minirom
    Oui moi aussi ca me semble louche.
    C'est pas moi qui ai fait le menu, le code existait déjà.
    Mais comme l'application est utilisée depuis un an, j'ai pas envie de changer, ca va dérouter les utilisateurs . Et c'est utilisé uniquement sous IE (bah ouais...)

    Je pense savoir pourquoi il a mis 2 fois <a...>
    Il voulais que le texte soit un lien (d'ou le <P...><a...>) et aussi le font soit un lien(on peut cliquer sur la partie bleue) d'ou le premier <a ...>
    C'est vrai que j'ai pas modifié, je vais essayer d'enlever le <a ...> du texte, puisque le premier englobe tout.
    Et j'avoue que je ne comprend pas non plus a quoi sert son span
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .menu SPAN {
    	display: none;
    }

    Edit: oups j'ai voulu editer et j'ai citer


    Redit: bon j'ai essayé ton code c'est bien comme ca que je veux le menu ^^.
    ce que j'ai pas dit c'est qu'il y a des sous menus avec.
    J'imagine qu'on peut mettre des sous listes dans les listes, je vais essayer pour voir.

    Par contre c'est bien comme j'ai dit, on ne peut cliquer que sur le texte dans ton menu, c'est pour ca qu'il y a 2 <a> imbriqués.

    merci de ton aide .

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

Discussions similaires

  1. Problème CSS alignement vertical
    Par Vinzius dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 10/08/2006, 10h34
  2. [CSS] alignement vertical d'un texte dans un div
    Par alexfrere dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 06/07/2006, 18h07
  3. [DIV][CSS] Alignement vertical
    Par pmartin8 dans le forum Mise en page CSS
    Réponses: 15
    Dernier message: 02/11/2005, 14h50
  4. CSS Alignement vertical pour images dynamiques
    Par bébé dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 17/09/2005, 15h43
  5. probleme d'alignement vertical
    Par mangamat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 15/02/2005, 22h46

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