2017-03-01 4 views
0

Nav Element schwimmt nicht ganz nach rechts

/* 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 -->

Trotz meiner Bemühungen ist es, als ob das nav Element eine Art Polsterung oder Rand hat (was es nicht). Wenn ich die Breite auf 100% setze, um zu verhindern, dass das nav auf zwei Linien überläuft, springt es unter das Logo, anstatt nach rechts auf derselben Linie wie das Logo zu schweben. Der Code kann jetzt ein wenig unordentlich von viel Versuch und Irrtum sein, aber kann jemand erklären, warum, wenn ich das nav Element zu Breite 100% nicht setze, das das nav auf zwei Linien verschüttet oder warum, wenn es auf 100% es gesetzt wird Bleib nicht nach rechts schwimmen?

Antwort

2

Heyo,

Es sieht aus wie Ihr% Marge Dinge flubbing auf. Wenn Sie bereit sind Wege mit, dass zu einem Teil (vorgeschlagen, wenn Sie in einer solchen engen Räumen sein werden, wo 4% sehr klein sein wird), versuchen Sie dies:

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; 
} 

Ihr nav ziemlich groß ist, so bei Um den 900px-Haltepunkt herum sollten Sie entweder die Schriftgröße reduzieren oder alles auf Floaten umstellen: links, so dass es unter dem Logo natürlicher aussieht.

+0

Seltsam scheint dieses Recht zu sein - ich einen weit größeren Spielraum px als% ohne sie brechen auf zwei Linien mit haben. Weißt du warum das so ist? – user4349555

+0

Prozentuelle Ränder können funky sein, wenn Sie keine Breiten definieren und durchgehende Elemente aufweisen. Die Breiten dieser Elemente werden im Flug berechnet und berücksichtigen nicht die% -Marke (da sie die Breite kennen müssen, bevor sie eine Zahl sein kann). Dies führt zu unvorhersehbaren Layouts. Versuchen Sie, Ihrem Logo 10%, nav 90% Breite und dann Ihrem UL eine Breite von 100% zu geben. Dadurch können Ihre Container definiert werden, ohne auf die Berechnung der Breiten der Floating-Elemente angewiesen zu sein. Es vermeidet das unregelmäßige Einwickeln. –

+0

Danke für die Erklärung – user4349555

0
  1. Entfernen Sie width: 100% von Ihrem nav.
  2. entfernen padding und margin von ul (von Browser als Standard hinzugefügt)
  3. font-size von nav Artikel Reduce - Wenn es zu groß natürlich die nav wickeln wird!
  4. Beachten Sie, dass Ihre containerwidth von 90% hat - da die nav innerhalb dieser ist, wird es nicht die äußerste rechte Kante erreichen.

/* 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. Habe das schon probiert. 2. Schon getan. 3. Ich bin mir dessen bewusst, aber das Navi sollte leicht auf die aktuelle Schriftgröße passen. 4. Richtig. Das Nav wird nicht direkt gegen den Rand des Containers schweben. Ich weiß, dass es nicht außerhalb seines Containers schwimmen wird. – user4349555

Verwandte Themen