2016-06-30 3 views
0

Ich weiß, dass viele Fragen zu diesem Thema sind, aber ich kann noch keine zufriedenstellende Antwort bekommen.Bootstrap nav-fixed-top überschreibt den Text, wenn die Seite verkleinert wird

Ich habe eine Seite mit einem Menü, das mit der Bootstrap-Klasse nav-fixed-top erstellt wurde. Das Problem ist, dass dieses Menü den folgenden Inhalt überlappt.

Ich einige, wie das Problem zu lösen, einen Rand oben von 60px für das erste Element nach dem Menü zu definieren. Das Problem ist, wenn die Seite auf die Größe eines mobilen Geräts reduziert wird, wird das Menü horizontal erweitert und überlappt den folgenden Inhalt erneut.

Mein Menü wird wie folgt erstellt:

<nav class="navbar navbar-inverse navbar-fixed-top navbar-static-top"> 
    <div class="container"> 
     <div class="navbar-header"> 
     <a class=navbar-brand href="#"> 
      My Brand 
     </a> 
     </div> 
     <ul class="nav navbar-nav"> 
     <li class="active"><a href="#">ABOUT</a></li> 
     <li><a href="#portfolio">PORTFOLIO</a></li> 
     <li><a href="#contact">CONTACT</a></li> 
     </ul> 
    </div> 
    </nav> 

Und Beispiel dafür, was geschieht hier gegründet werden: http://codepen.io/miguelbgouveia/pen/QEvyrR

Was die Lösung für dieses Problem ist?

+1

Pls schauen Sie sich um diesen Code. http://codepen.io/nehemc/pen/dXWGQd – Nehemiah

+1

Dies ist die Art, wie Sie erwartet haben, die Speisekarte. http://codepen.io/nehemc/pen/EymKNo – Nehemiah

+0

Das ist eine kluge Lösung @Nehemiah, aber wenn das Menü horizontal erweitert wird es nicht mehr in der Spitze fixiert. Wenn wir die Seite scrollen, verschwindet das Menü. Siehe in diesem Beispiel: http://codepen.io/miguelbgouveia/pen/QEvyrR – miguelbgouveia

Antwort

2

Machen Medien-Anfragen für jedes Gerät

Documentation

auch nicht benutzen, um Ihre Titel, um die margin-top, um die margin-top (und schon gar nicht eine id) einzustellen. Aber machen Sie eine Extra-Klasse in Ihrem Container wie 'Inhalt' und setzen Sie einen Spielraum dafür. Oder benutze einfach das Körperelement.

/*standard value for mobile devices, bootstrap is mobile first: */ 
.content { 
    margin-top:200px; 
} 

/* Small devices (tablets, 768px and up) */ 
@media (min-width: 768px) { 
.content { 
    margin-top: 100px; 
} 
} 


/* Medium devices (desktops, 992px and up) */ 
@media (min-width: 992px) { 
.content { 
    margin-top: 80px; 
} 
} 


/* Large devices (large desktops, 1200px and up) */ 
@media (min-width: 1200px) { 
    .content { 
    margin-top: 60px; 
} 
} 
+0

Ich versuche deine Lösung, aber es funktioniert nicht. Sie können ID hier sehen: https://codepen.io/miguelbgouveia/pen/QEvyrR Ich vermisse etwas? – miguelbgouveia

+0

Der Code, den ich postete, war mit Beispielwerten. Ich habe es in echte Werte geändert. Sie müssen immer noch mit den margin-top-Pixeln herumspielen, um das Ergebnis zu erhalten, das Sie benötigen – Christophvh

+0

Ich aktualisierte den Code, ich vergaß, einen Standardwert für den Inhalt anzugeben (das ist der mobile Wert, da Bootstrap zuerst mobil ist). Probieren Sie meinen neuen Code, es sollte funktionieren – Christophvh

1

Sie können diesen Code auch für bessere Standards verwenden. http://codepen.io/nehemc/pen/dXWGQd

<nav class="navbar navbar-default navbar-fixed-top navbar-inverse"> 
    <div class="container"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> 
     <a class="navbar-brand" href="#">Brand</a> </div> 
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
     <ul class="nav navbar-nav"> 
     <li class="active"><a href="#">ABOUT</a></li> 
     <li><a href="#portfolio">PORTFOLIO</a></li> 
     <li><a href="#contact">CONTACT</a></li> 
     </ul> 
    </div> 
    </div> 
</nav> 
<div class="container"> 
    <div class="row"> 
    <div class="col-md-12"> 
     <h4 id="first-title">Title 1</h4> 
     <h4>Title 2</h4> 
     <h4>Title 3</h4> 
    </div> 
    </div> 
</div> 
+0

Das ist eine gute Lösung, aber wirklich nicht mögen den Zusammenbruch des Menüs in einem Hamburger-Symbol. Siehe diesen Artikel über die Probleme mit versteckter Navigation: https://www.nngroup.com/articles/hamburger-menus/ – miguelbgouveia

Verwandte Themen