2017-03-01 4 views
0

élément Nav ne sera pas complètement flotter à droite

/* Generic Styles */ 
 
body { 
 
    background: #ffffff; 
 
    color: #222222; 
 
    font: 1em; 
 
} 
 

 
.container { 
 
\t margin: auto; 
 
\t width: 90%; 
 
} 
 

 
img { 
 
\t max-width: 100%; 
 
} 
 

 
/* Layout Styles */ 
 
header { 
 
\t background-image: url(../images/rocket.png); 
 
\t background-repeat: no-repeat; 
 
\t background-size: contain; 
 
\t background-position: left; 
 
\t background-color: #003151; 
 
} 
 

 
header img { 
 
\t float: left; 
 
\t margin-top: 30px; 
 
} 
 

 
header h3 { 
 
\t clear: both; 
 
} 
 

 
nav { 
 
\t float: right; 
 
\t width: 100%; 
 
\t font-size: 1.250em; 
 
\t font-weight: bold; 
 
\t text-transform: uppercase; 
 
\t margin-top: 62px; 
 
\t } 
 

 
nav ul { 
 
\t list-style: none; 
 
} 
 

 
nav ul li { 
 
\t float: left; 
 
\t display: block; 
 
\t margin-right: 04%; 
 
} 
 

 
nav ul li:last-child { 
 
\t margin-right: 0; 
 
} 
 

 
nav ul li a { 
 
\t color: #ffffff; 
 
\t text-decoration: none; 
 
}
<header> 
 

 
    <div class="container"> 
 

 
    <a href="#" title="Home page"><img src="images/logo.png" alt="Logo" /></a> 
 

 
    <nav> 
 
     <ul> 
 
     <li><a href="#" title="Home page" class="current">Home</a></li> 
 
     <li><a href="portfolio" title="See some of my featured work">Portfolio</a></li> 
 
     <li><a href="services" title="Learn more about my services">Services</a></li> 
 
     <li><a href="about" title="Learn more about me">About</a></li> 
 
     <li><a href="blog" title="View latest posts">Blog</a></li> 
 
     <li><a href="faqs" title="View latest FAQS">FAQS</a></li> 
 
     <li><a href="contact" title="Get in touch">Contact</a></li> 
 
     </ul> 
 
    </nav> 
 

 
    <h3>BlahBlahBlahH3</h3> 
 

 
    <p>BlahBlahBlah</p> 
 

 
    <a href="#" class="btn" title="Get in touch">Get in touch</a> 
 

 
    </div> 
 
    <!-- End Container --> 
 

 
</header> 
 
<!-- End Header -->

Malgré tous mes efforts, il est comme si l'élément nav a une sorte de rembourrage ou de la marge (ce qui ne fonctionne pas). Si je règle la largeur à 100% pour arrêter le nav débordant sur deux lignes, il saute alors sous le logo au lieu de flotter vers la droite sur la même ligne que le logo. Le code peut être un peu désordonné maintenant de beaucoup d'essais et d'erreurs, mais quelqu'un peut-il expliquer pourquoi si je ne place pas l'élément nav à la largeur 100% que le nav déborde sur deux lignes ou pourquoi s'il est réglé à 100% ne restera pas flotter vers la droite?

Répondre

2

Heyo,

Il semble que votre marge% est flubbing les choses. Si vous êtes prêt à se séparer de ce (proposées si vous allez être dans ces espaces restreints où 4% sera très petit), essayez ceci:

nav { 
    float: right; 
    font-size: 1.250em; 
    font-weight: bold; 
    text-transform: uppercase; 
} 

nav ul { 
    list-style: none; 
    float: right; 
} 

nav ul li { 
    float: left; 
    display: block; 
    margin-right: 20px; 
} 

Votre navigation est assez grand, donc à autour du point d'arrêt 900px, vous voudrez soit réduire la taille de police, ou tout déplacer pour flotter: à gauche, de sorte que quand il va en dessous du logo, il semble plus naturel.

+0

Étrangement cela semble être juste - je peux avoir une marge beaucoup plus en utilisant px que% sans le casser sur deux lignes. Savez-vous pourquoi c'est? – user4349555

+0

Les marges de pourcentage peuvent être funky lorsque vous ne définissez pas les largeurs et que vous avez des éléments flottants tout le long. Les largeurs de ces éléments sont calculées à la volée, et ne tiennent pas compte de la marge% (puisqu'elle doit connaître les largeurs avant de pouvoir être un nombre). Cela rend les dispositions imprévisibles. Essayez de donner à votre logo 10%, nav une largeur de 90%, puis votre UL une largeur de 100%. Cela permet de définir vos conteneurs sans compter sur le calcul des largeurs des éléments flottants. Cela évitera l'emballage irrégulier. –

+0

Merci pour l'explication – user4349555

0
  1. Supprimer width: 100% de votre nav.
  2. Retirer padding et margin de ul (ajouté par le navigateur par défaut)
  3. Réduire font-size de nav articles - si son trop grand bien sûr le nav termineront!
  4. Notez que votre container a width de 90% - comme le nav est dans celui-ci, il n'atteindra pas le bord extrême droite.

/* Generic Styles */ 
 

 
body { 
 
    background: #ffffff; 
 
    color: #222222; 
 
    font: 1em; 
 
} 
 

 
.container { 
 
    margin: auto; 
 
    width: 90%; 
 
} 
 

 
img { 
 
    max-width: 100%; 
 
} 
 

 

 
/* Layout Styles */ 
 

 
header { 
 
    background-image: url(../images/rocket.png); 
 
    background-repeat: no-repeat; 
 
    background-size: contain; 
 
    background-position: left; 
 
    background-color: #003151; 
 
} 
 

 
header img { 
 
    float: left; 
 
    margin-top: 30px; 
 
} 
 

 
header h3 { 
 
    clear: both; 
 
} 
 

 
nav { 
 
    float: right; 
 
    font-size: 1.250em; 
 
    font-weight: bold; 
 
    text-transform: uppercase; 
 
    margin-top: 62px; 
 
} 
 

 
nav ul { 
 
    list-style: none; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
nav ul li { 
 
    float: left; 
 
    display: block; 
 
    margin-right: 14px; 
 
} 
 

 
nav ul li:last-child { 
 
    margin-right: 0; 
 
} 
 

 
nav ul li a { 
 
    color: #ffffff; 
 
    text-decoration: none; 
 
    font-size: 14px; 
 
}
<header> 
 

 
    <div class="container"> 
 

 
    <a href="#" title="Home page"><img src="images/logo.png" alt="Logo" /></a> 
 

 
    <nav> 
 
     <ul> 
 
     <li><a href="#" title="Home page" class="current">Home</a></li> 
 
     <li><a href="portfolio" title="See some of my featured work">Portfolio</a></li> 
 
     <li><a href="services" title="Learn more about my services">Services</a></li> 
 
     <li><a href="about" title="Learn more about me">About</a></li> 
 
     <li><a href="blog" title="View latest posts">Blog</a></li> 
 
     <li><a href="faqs" title="View latest FAQS">FAQS</a></li> 
 
     <li><a href="contact" title="Get in touch">Contact</a></li> 
 
     </ul> 
 
    </nav> 
 

 
    <h3>BlahBlahBlahH3</h3> 
 

 
    <p>BlahBlahBlah</p> 
 

 
    <a href="#" class="btn" title="Get in touch">Get in touch</a> 
 

 
    </div> 
 
    <!-- End Container --> 
 

 
</header> 
 
<!-- End Header -->

+0

1. Déjà essayé. 2. Déjà fait cela. 3. Je suis bien conscient de cela, mais la navigation devrait facilement s'adapter à la taille de police actuelle. 4. Correct. Le nav ne flotte pas sur le bord du conteneur. Je sais qu'il ne flottera pas à l'extérieur de son conteneur. – user4349555