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 :

Aligner verticalement avec flex


Sujet :

Positionnement en CSS avec flexbox

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut Aligner verticalement avec flex
    Bonjour,

    J'essaye d'améliorer mon menu que l'on peut voir ici

    https://eco-sensors.ch/temp/template/

    L'objectif est d'avoir les liens < a > alignés dans l'axe Y.

    Voici comment c'est fait et ce que j'ai essayé de faire.

    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
     
    <ul class="navbar-nav d-flex">
            <li class="nav-item current first">
              <a class="nav-link active" aria-current="page" href="#">Accueil</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Microkiné</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Lecture BIO</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">OVID 19</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Déroulement d'une scéance</a>
            </li>
            <li class="nav-item last">
              <a class="nav-link" href="#">Réserver</a>
            </li>
          </ul>
    J'ai ajouté align-items et justofy-content, "dans conteneurs" qui conteint "les boites" (les li) qui doivent être alignées. Cela fonctionne, mais les li "perdent" leurs hauteurs. En fait, ils prennent la hauteur des <a> qui se trouve dedans. Alors j'ai essayé de les mettre dans les < li > (commenté ci-dessous), puisqu'en fait, c'est les li qui contient ce que veux aligner sur l'axe Y. Mais cela n'a aucun effet
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    .d-flex{
        align-items: center;
        justify-content: center;
    }
     
     
    .d-flex li{
    	flex:1;
    	padding:20px 5px 20px 5px;
    	border-bottom: 1px solid #e1ebf4;
    	border-left: 1px solid #e1ebf4;
        /*align-items: center;
        justify-content: center;*/
    }

    Je me demande alors comment aligner les liens en conservant les hauteurs de < li >

    PS: J'ai pensé à définir une hauteur fixe aux < li >, mais peut-on éviter ceci?

  2. #2
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,



    Une solution :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .navbar-expand-lg .navbar-nav a.nav-link {
        display: flex;
        height: 100%;
        align-items: center;
        justify-content: center;
    }

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Merci Jereaux,

    Je connais peu le flex, et j'ai regardé un tuto. Je pensais qu'un display:flex ne pouvais être mis que dans le conteneur.
    J'ai un meeting dans 5mn et je vais regardé ceci plus tard.

    Bon après-midi.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Merci beacoup Jreaux,
    Je comprends ce que tu propose de faire.
    Ca marche, en effet, très bien.

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

Discussions similaires

  1. [CSS 3] Centrage verticalement sur une div avec flex
    Par ledisciple dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 11/07/2018, 14h46
  2. [WD-2007] Aligner verticalement des boutons radio avec le texte
    Par nenex-eh dans le forum Word
    Réponses: 1
    Dernier message: 24/01/2013, 15h37
  3. Réponses: 1
    Dernier message: 16/09/2011, 20h44
  4. Aligner verticalement avec CSS
    Par machipot dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 13/12/2007, 16h14
  5. aligner verticalement dans une cellule
    Par mic79 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/12/2004, 10h52

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