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 :

Prolonger une barre de navigation (subnav)


Sujet :

CSS

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Prolonger une barre de navigation (subnav)
    Bonjour je suis en train de faire une navbar pour un projet et j'aimerais pouvoir afficher une subnav lors d'un hover sur mes liens. Je voudrais que la subnav prenne toute la longueur de l'écran. Est-ce que vous avez une idée de la manière de faire ?

    Mon HTML :
    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
    26
    <nav class="main-nav">
            <ul class="nav-ul">
                <div class="bloc-list">
                    <li>
                        <a href="#" class="link">Collections</a>
                        <div class="subnav-content">
                            <a href="">test1</a>
                            <a href="">test2</a>
                            <a href="">test3</a>
                            <a href="">test4</a>
                            <a href="">test5</a>
                            <a href="">test6</a>
                        </div>
                    </li>
                    <li><a href="#" class="link">Vaisselle</a></li>
                    <li><a href="#" class="link">Inspiration</a></li>
                </div>  
                <li><img src="public/images/logo_vaisselle_arthur.svg" alt="Vaisselle-logo"></li>
                <div class="bloc-icon">
                    <li><img src="public/images/loupe.png" alt="loupe" class="icon"></li>
                    <li><img src="public/images/user.png" alt="user" class="icon"></li>
                    <li><img src="public/images/heart.png" alt="heart" class="icon"></li>
                    <li><img src="public/images/cart.png" alt="cart" class="icon"></li>
                </div>
            </ul>
        </nav>

    MON CSS :
    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
    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
    .link{
        text-decoration: none;
        color: black;
    }
     
    .icon{
        width: 40px;
    }
     
    .link:hover{
        animation: underline 0.5s linear;
        animation-fill-mode: forwards;
    }
     
     
    .main-nav{
        width: 100%;
        position: absolute;
        top: 0;
        left: 0;
        box-shadow: 0px 10px 5px 0px #D4D3D8;
    }
     
    .nav-ul{
        height: 60px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        list-style: none;
    }
     
    .bloc-list{
        display: flex;
        width: 500px;
        justify-content: space-around;
    }
     
    .bloc-icon{
        display: flex;
        width: 500px;
        justify-content: space-around;
    }
     
    @keyframes underline{
        0%{
            border-bottom: solid rgba(0, 0, 0, 0) 1.5px;
        }
        50%{
            border-bottom: solid rgba(0, 0, 0, 0.5) 1.5px;
        }
        100%{
            border-bottom: solid rgba(0, 0, 0, 1) 1.5px;
        }
    }

    Merci de votre aide.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    pour commencer ton code HTML n'est pas conforme, même si cela ne l'empêchera pas de fonctionner, un élément <div> ne peut pas être enfant direct d'un élément <ul>.

    Je voudrais que la subnav prenne toute la longueur de l'écran.
    cela revient quoiqu'il arrive à tracer une ligne horizontale, dans ce cas mets l'apparition sur le hover du menu et non pas du lien. Je pense qu'avec la structure alambiquée que tu as tu rencontreras quand même des soucis.

    Je ne vois pas trop le rendu que tu cherches à obtenir.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse. Je vais modifier mon code pour le rendre plus conforme. Pour ce qui est du rendu voici ce que je compte faire :

    - La barre de navigation :
    Nom : navnormal.png
Affichages : 152
Taille : 5,5 Ko

    - Lors d'un hover sur "collection" par exemple :
    Nom : navhover.png
Affichages : 155
Taille : 16,0 Ko

    J'espère que tu comprends mieux merci de ta réponse.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    J'ai donc modifié le html et le css en espérant que ce soit plus conforme et lisible.

    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
    <nav class="navbar">
        <div class="subnav">
            <button class="subnavbtn">Collection</button>
            <div class="subnav-content">
                <a href="">test 1</a>
                <a href="">test 2</a>
                <a href="">test 3</a>
                <a href="">test 4</a>
            </div>
            <div class="subnav">
                <button class="subnavbtn">Vaisselle</button>
            </div>
            <div class="subnav">
                <button class="subnavbtn">Inspiration</button>
            </div>
        </div>
        <img src="./public/images/logo_vaisselle_arthur.svg" alt="logo_vaisselle_arthur">
        <div class="bloc-icon">
            <img src="public/images/loupe.png" alt="loupe" class="icon">
            <img src="public/images/user.png" alt="user" class="icon">
            <img src="public/images/heart.png" alt="heart" class="icon">
            <img src="public/images/cart.png" alt="cart" class="icon">
        </div>
    </nav>
    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
    16
    17
    .navbar{
        display: flex;
        justify-content: space-around;
        align-items: center;
        box-shadow: 0px 10px 5px 0px #D4D3D8;
        width: 100%;
        height: 80px;
        box-shadow: 0px 10px 5px 0px #D4D3D8;
    }
     
    .subnav{
        display: flex;
    }
     
    .icon{
        width: 40px;
    }

    Si jamais le code ne convient toujours pas n'hésite pas à me le signaler. Encore merci pour ton aide.

Discussions similaires

  1. Une barre de navigation qui suit les déplacements dans une longue page
    Par septembr1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/02/2008, 10h56
  2. Crée une barre de navigation.
    Par Linux1 dans le forum EDI/Outils
    Réponses: 5
    Dernier message: 18/10/2007, 17h31
  3. [PHP-JS] Création d'une barre de navigation
    Par Justin_C dans le forum Langage
    Réponses: 16
    Dernier message: 02/01/2007, 17h32
  4. Réponses: 9
    Dernier message: 12/08/2006, 01h36
  5. créer une barre de navigation déroulante aide
    Par max45 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/11/2005, 20h57

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