Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Erreur] Aide pour un menu avec du texte

Menu + texte + simplification

    15 avril 2018 à 16:40:17

    Bonjour,

    je suis actuellement en train de m'entrainer sur du css et du html sauf que j'ai un petit problème:

    Voici mon code html:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Rycen's site</title>
    		<link rel="stylesheet" href="site web.css"/>
        </head>
    
        <body>
    		<nav>
    			<ul>
    				<li class="menu-1"><a href="1.html">Projet</a></li>
    				<li class="menu-4"><a href="1.html">Cahier des charges</a></li>
    				<li class="menu-2"><a href="2.html">Téléchargement</a></li>
    				<li class="menu-3"><a href="3.html">Aide</a></li>
    			</ul>	
    		</nav>
        </body>
    </html>


    Voici mon code css: 

    body
    {
     font-family: calibri, sans-serif;
     margin: 0px;
     padding:0px;
     background-color : #130448;
    
    }
    ul {
    	font-size: 30px;
    	font-weight:bold;
    	font-family: calibri, sans-serif;
    }
    
    .Projet{
    	font-size: 50px;
    	position: relative;
    	left: 100px;
    	top: 100px;
    }
     nav > ul
     {
      margin: 0px;
      padding: 0px;
     }
    
     nav > ul > li
     {
      float: left;
      position: relative;
     }
    
    
    nav li:hover .submenu
    {
     display: inline-block;
     position: absolute;
     top: 100%;
     left: 0px;
     padding: 0px;
     z-index: 1;
    }
    
    nav
    {
     position: fixed;
     width: 100%;
     background-color: black;
    }
    
    nav > ul::after
    {
     content: "";
     display: block;
     clear: both;
    }
    
    nav a
    {
     display: inline-block;
     text-decoration: none;
     font-weight: 250px;
    }
    
    nav > ul > li > a
    {
     padding: 20px 30px;
     color: white;
    }
    
     .menu-1:hover
     {
      background-color: black;
      border-top:5px solid white;
     }
    
     .menu-2:hover
     {
      background-color: black;
      border-top:5px solid white;
     }
    
     .menu-3:hover
     {
      background-color: black;
      border-top:5px solid white;
     }
    
     nav > ul >li:hover a
     {
      padding: 15px 30px 20px 30px;
      color: white;
     }
    
    

    Quand je fais tout ça j'ai bien mes "boutons" en haut et le reste sauf que quand je vais dans projet mon texte se retrouve en dessous des gros bouttons "projet, cahier des charges..." Il y a aussi une marge qui se créer au dessus. Pouvez vous m'aider pour pouvoir faire mon texte en dessous du "menu" en supprimant la marge? Je suppose qu'il y a aussi beaucoup d'erreurs car je suis un débutant. Merci d'avance pour votre aide précieuse.

    Première page sans bug:

    Première page normal
    Deuxième avec: 

    Je penses que le problème est que je n'ai pas utilisé de "block" comme <header> ou autre. Est-ce ça ?

    -
    Edité par LilianDeuzel 16 avril 2018 à 7:14:33

    • Partager sur Facebook
    • Partager sur Twitter
      15 avril 2018 à 18:21:04

      Montre le code qui correspond a projet ... 1.html
      • Partager sur Facebook
      • Partager sur Twitter
        15 avril 2018 à 18:33:03

        Oups je l'avais oublié !
        <!DOCTYPE html>
        <html>
            <head>
                <meta charset="utf-8" />
                <title>Projet</title>
        		<link rel="stylesheet" href="site web.css"/>
            </head>
        
            <body>
        			<nav>
        			<ul>
        				<li class="menu-1"><a href="1.html">Projet</a></li>
        				<li class="menu-1"><a href="1.html">Cahier des charges</a></li>
        				<li class="menu-2"><a href="2.html">Téléchargement</a></li>
        				<li class="menu-3"><a href="3.html">Aide</a></li>
        			</ul>	
        		</nav>
        		
        		<p class='Projet'>Projet</p>
            </body>
        </html>
        • Partager sur Facebook
        • Partager sur Twitter
          15 avril 2018 à 19:23:44

          Deja tu as trop de d'élément dans ton CSS commence par épuré un peu.
          • Partager sur Facebook
          • Partager sur Twitter
          Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet.
            15 avril 2018 à 19:35:13

            Oui j'ai surement trop d'élément, enfaite j'ai pris un éxo précis et j'ai gardé ce qui me fallait. Cependant il y'a des trucs en trop comme tu dis. Tu pourrais me dire ce qu'il y a en trop (je reprécise que je suis un débutant :) )
            • Partager sur Facebook
            • Partager sur Twitter
              15 avril 2018 à 19:41:45

              Tu as trop de classes sur tes <li> dans ton cas il suffit de ciblé les éléments pas besoin de les surchargé en les nommant. 

              La police que tu utilises est déclaré dans le body donc pas besoin de la déclarée par la suite.

              Etc...

              Par exemple :

              nav>ul>li /* est inutile tu peux juste écrire : */
              
              nav ul li /* qui revient au même.



              -
              Edité par Zoki_Marciano 15 avril 2018 à 19:44:37

              • Partager sur Facebook
              • Partager sur Twitter
              Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet.
                15 avril 2018 à 19:49:39

                D'accord je comprends, par contre tu dis que j'ai trop de classe sur mes balises li, tu parles de quoi précisement ? 

                • Partager sur Facebook
                • Partager sur Twitter
                  15 avril 2018 à 20:01:11

                  Ton menu actuel : 

                    <nav>
                              <ul>
                                  <li class="menu-1"><a href="1.html">Projet</a></li>
                                  <li class="menu-1"><a href="1.html">Cahier des charges</a></li>
                                  <li class="menu-2"><a href="2.html">Téléchargement</a></li>
                                  <li class="menu-3"><a href="3.html">Aide</a></li>
                              </ul>
                          </nav>

                  Devrait ressembler à ca :

                  <nav>
                    <ul>
                      <li><a href="1.html">Projet</a></li>
                      <li><a href="1.html">Cahier des charges</a></li>
                  <li><a href="2.html">Téléchargement</a></li> <li><a href="3.html">Aide</a></li> </ul> </nav>




                  -
                  Edité par Zoki_Marciano 15 avril 2018 à 20:01:51

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet.
                    15 avril 2018 à 20:21:54

                    Mais si je fais ça je ne pourrais plus dire par exemple: cahier des charges en bleu et projet en vert?!
                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 avril 2018 à 20:35:04

                      bah si, pour cibler projet tu fais : 

                      ul > li {
                      
                      }
                      
                      

                      pour cibler les autres tu fais :

                      ul li:nth-child(2) {
                       /* Pour cahier des charges */
                      }

                      etc...


                      • Partager sur Facebook
                      • Partager sur Twitter
                      Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet.
                        15 avril 2018 à 20:37:34

                        Hello,

                        Il existe des pseudo-classes:

                        Liste : -> https://developer.mozilla.org/fr/docs/Web/CSS/Pseudo-classes 

                        Dans ton cas -> https://www.w3schools.com/cssref/sel_nth-child.asp (ou first / last child)

                        Exemple : https://jsfiddle.net/je119o1c/5/ 

                        EDIT : Zoki_Marciano vient d'en parler ;)

                        -
                        Edité par Lucky13 15 avril 2018 à 20:39:57

                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 avril 2018 à 20:54:46

                          Si j'ai bien compris tous les éléments dans la balises <li> ont un nombre attribué en fonction de leur place. Cela va beaucoup m'aider merci :) 

                          Revenons à mon problème, pourquoi une marge se créer automatiquement? (je vais essayer de supprimer et de simplifier mon code)

                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 avril 2018 à 21:01:39

                            J'ai essayé ton code dans codepen et je n'ai aucune marge, tu utilises quel navigateur?
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet.
                              15 avril 2018 à 21:13:15

                              LilianDeuzel a écrit:

                              Si j'ai bien compris tous les éléments dans la balises <li> ont un nombre attribué en fonction de leur place. Cela va beaucoup m'aider merci :) 

                              Revenons à mon problème, pourquoi une marge se créer automatiquement? (je vais essayer de supprimer et de simplifier mon code)


                              pas vraiment, pour faire simple il y un "parent" et ses "enfants" : nth-child(n) cible tel ou tel enfant, fisrt-child le 1er enfant, last-child le dernier, puis il existe aussi des combinaisons...

                              De toute façon, ton document web est fait de parents de parents et d'enfants (et de noeuds), on navigue ainsi dans le DOM en CSS et aussi en JavaScript.

                              Enfin il existe aussi les selecteurs css -> https://www.w3schools.com/cssref/css_selectors.asp 

                              -
                              Edité par Lucky13 15 avril 2018 à 21:14:20

                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 avril 2018 à 21:27:10

                                Zoki_Marciano a écrit:

                                J'ai essayé ton code dans codepen et je n'ai aucune marge, tu utilises quel navigateur?

                                J'utilise chrome, je vais essayer sur explorer.

                                Lucky13 a écrit:

                                pas vraiment, pour faire simple il y un "parent" et ses "enfants" : nth-child(n) cible tel ou tel enfant, fisrt-child le 1er enfant, last-child le dernier, puis il existe aussi des combinaisons...

                                De toute façon, ton document web est fait de parents de parents et d'enfants (et de noeuds), on navigue ainsi dans le DOM en CSS et aussi en JavaScript.

                                Enfin il existe aussi les selecteurs css -> https://www.w3schools.com/cssref/css_selectors.asp 

                                -
                                Edité par Lucky13 il y a 30 minutes

                                D'accord merci, je commence à mieux comprendre :) 

                                EDIT:cJ'ai essayé avec un autre navigateur toujours le même problème. Tu es sur d'avoir cliqué sur "projet" sur le site ?










                                -
                                Edité par LilianDeuzel 15 avril 2018 à 21:46:55

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  15 avril 2018 à 22:36:52

                                  Bonjour,

                                  Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
                                  Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

                                  Pour plus d'informations, nous vous invitons à lire les règles générales du forum

                                  Mauvais titre

                                  Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

                                  Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

                                  De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

                                  Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

                                  Pour modifier votre titre, éditez le premier message de votre sujet.

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Pas d'aide concernant le code par MP, le forum est là pour ça :)

                                  [Erreur] Aide pour un menu avec du texte

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown