Partage

[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

Vous êtes demandeur·se d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur·se web junior

Je postule
Formation
courte
Financée
à 100%
15 avril 2018 à 18:21:04

Montre le code qui correspond a projet ... 1.html
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>
15 avril 2018 à 19:23:44

Deja tu as trop de d'élément dans ton CSS commence par épuré un peu.
Le savoir n’est pas difficile, seule sa mise en pratique l’est.
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 :) )
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

Le savoir n’est pas difficile, seule sa mise en pratique l’est.
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 ? 

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

Le savoir n’est pas difficile, seule sa mise en pratique l’est.
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?!
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...


Le savoir n’est pas difficile, seule sa mise en pratique l’est.
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)

15 avril 2018 à 21:01:39

J'ai essayé ton code dans codepen et je n'ai aucune marge, tu utilises quel navigateur?
Le savoir n’est pas difficile, seule sa mise en pratique l’est.
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

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

Staff 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.

Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça :) Postez votre code html et css (bouton '</>') !!

[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é.
  • Editeur
  • Markdown