2017-07-27 4 views
0

Je suis nouveau au codage donc désolé si ce que je fais ici est complètement stupide.Pourquoi mon menu ne va-t-il pas complètement à gauche?

Je construis un site web très basique en utilisant html et css. Je veux utiliser 2 barres de navigation. Un en haut de l'écran pour la navigation principale. Et un sur le côté gauche pour naviguer à travers cette page spécifique. Le premier fonctionne bien, mais le second a l'air bizarre. Les liens cliquables ne peuvent pas être déplacés plus vers la gauche et dépassent donc vers la droite. Ce que je veux dire:

enter image description here

Je suis en vol stationnaire avec ma souris sur "content2"

Qu'est-ce que je fais mal? Voici le code que j'ai écrit:

<body> 
    <nav> 
     <ul class="navbar"> 
      <li class="navbar"><a class="navbar active" href="index.html">home</a></li> 
      <li class="navbar"><a class="navbar" href="page1.html">page 1</a></li> 
      <li class="navbar"><a class="navbar" href="page2.html">page 2</a></li> 
      <li class="navbar"><a class="navbar" href="page3.html">page 3</a></li> 
      <li class="navbar"><a class="navbar" href="page4.html">page 4</a></li> 
     </ul> 
    </nav> 

    <div id="contentbar"> 
     <ul class="ucontentbar"> 
      <li class="contentbar"><a class="contentbar" href="#">content1</a></li> 
      <li class="contentbar"><a class="contentbar" href="#">content2</a></li> 
      <li class="contentbar"><a class="contentbar" href="#">content3</a></li> 
      <li class="contentbar"><a class="contentbar" href="#">content4</a></li> 
      <li class="contentbar"><a class="contentbar" href="#">content5</a></li> 
      <li class="contentbar"><a class="contentbar" href="#">content6</a></li> 
      <li class="contentbar"><a class="contentbar" href="#">content7</a></li> 
     </ul> 
    </div> 

    <div id="page"> 
    <p>text</p> 

    </div> 

</body> 

Et le CSS qui va avec:

body { 
margin: 0px; 
padding: 0px; 
} 

nav { 
background-color: rgb(50,50,50); 
font-family: sans-serif; 
font-size: 20px; 
height: 60px; 
width: 100%; 

} 

ul.navbar { 
list-style-type: none; 
margin: 0px; 
padding: 0px; 
overflow: hidden; 
text-align: right; 
position: fixed; 
} 

li.navbar{ 
float: left; 
height: 60px; 
} 

a.navbar { 
display: inline-block; 
padding: 19px 25px; 
background-color: rgb(50,50,50); 
text-align: center; 
color: white; 
text-decoration: none; 
} 

a.navbar:hover { 
background-color: black; 
} 

a.active { 
background-color: rgb(80,80,220); 
} 

#contentbar { 
background-color: rgb(100,100,100); 
font-family: sans-serif; 
font-size: 14px; 
width: 300px; 
height: 100%; 
display: block; 
position: absolute; 
} 

ul.contentbar { 
margin: 0; 
padding: 0; 
} 

li.contentbar { 
list-style: none; 

} 

a.contentbar { 
left: 0; 
background-color: rgb(100,100,100); 
color: white; 
display: block; 
width:300px; 
height: 30px; 
text-decoration: none; 

} 

a.contentbar:hover { 
background-color: black; 
} 

#page { 
background-color: rgb(0,200,100); 
width: 100%; 
height: 100%; 
} 
+1

Sans avoir préalablement assemblé une démo, cela ressemble à une marge et un remplissage par défaut. –

+0

Vous pouvez également définir 'overflow: hidden' sur #contentbar. Cela empêchera les enfants de déborder. – kkalamarski

+0

.. ou ne spécifiez pas de largeur. Le conteneur a une largeur et il n'est pas nécessaire de donner aux enfants la même largeur. Cela restera problématique. –

Répondre

3

Apparaît une faute de frappe dans le nom de classe de l'ul <ul class="ucontentbar">, donc le remplissage n'est pas appliqué.

1

donner votre ul à padding: 0 ou supprimer le style de widtha.contentbar.

Par défaut, l'élément ul a une cause de remplissage de ses enfants. C'est pourquoi votre liste semble comme ça.