Ich baue ein Projekt mit Bootstrap und habe ein kleines Problem. Ich habe einen Container unter dem Nav-Top. Mein Problem ist, dass ein Teil meines Containers unter dem Nav-Top-Header versteckt ist. Ich möchte keinen Top-Rand mit verwenden Container. Bitte sehen Sie unten HTML, in dem ich mit dem Problem konfrontiert bin
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link rel="stylesheet" href="~/stylesheets/bootstrap.css"/>
<link rel="stylesheet" href="~/stylesheets/bootstrap-responsive.css"/>
</head>
<body>
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<div class="container">
<button data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar collapsed" type="button">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="nav-collapse"><ul class="nav" id="navbar"><li ng-class="{active:section=='plunks'}" class="active"><a href="/plunks/trending"><i class="icon-home"></i>Home</a></li><li><a target="_self" href="/edit/"><i class="icon-calendar"></i>General Election 2014</a></li><li class="divider-vertical">
</li><li class="dropdown"><a class="dropdown-toggle" href="#" data-toggle="dropdown">
<i class="icon-eye-open">
</i>Assembly Elections
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#/HTML5Apps">Assembly Elections 2013</a></li>
</ul>
</li><li class="divider-vertical">
</li><li ng-class="{active:section=='tags'}"><a href="/tags"><i class="icon-th"></i>Constituecy</a></li><li ng-class="{active:section=='discuss'}"><a href="/discuss"><i class="icon-time"></i>Election News</a></li><li class="divider-vertical"></li><li><a href="https://github.com/filearts/plunker"><i class="icon-bell"></i>Candidate</a></li></ul></div>
</div>
</div>
</div>
<div class="container" >
<ul class="nav nav-pills">
<li class="active">
<a href="#">Popular</a>
</li>
<li><a href="#">Trending</a></li>
<li><a href="#">Latest</a></li>
</ul>
</div>
<script src="~/Scripts/jquery.js"></script>
<script src="~/Scripts/bootstrap-dropdown.js"></script>
<script src="~/Scripts/Collapse.js"></script>
</body>
</html>
css
twitter-bootstrap
Ajay Beniwal
quelle
quelle
Antworten:
Dies wird durch Hinzufügen einiger
padding
am oberen Rand des<body>
.Tipp: Standardmäßig ist der Wert hoch.
.navbar-fixed-top
navbar
50px
Schauen Sie sich auch die Quelle für dieses Beispiel an und öffnen Sie sie
starter-template.css
.quelle
Ich denke, das Problem, das Sie haben, hängt mit der dynamischen Höhe zusammen, die die feste Navigationsleiste oben hat. Wenn sich ein Benutzer anmeldet, müssen Sie beispielsweise eine Art " Hallo [Benutzername] " anzeigen. Wenn der Name zu breit ist, muss die Navigationsleiste mehr Höhe verwenden, damit sich dieser Text nicht mit dem Navigationsleistenmenü überschneidet . Da die Navigationsleiste den Stil " Position: fest " hat, bleibt der Körper darunter und ein größerer Teil davon wird ausgeblendet, sodass Sie die Polsterung oben jedes Mal "dynamisch" ändern müssen, wenn sich die Höhe der Navigationsleiste ändert, was im Folgenden passieren würde Fallszenarien:
Diese Dynamik wird von regulärem CSS nicht abgedeckt, daher kann ich mir nur einen Weg vorstellen, um dieses Problem zu lösen, wenn der Benutzer JavaScript aktiviert hat. Bitte versuchen Sie das folgende jQuery- Code-Snippet, um die Fallszenarien 1 und 2 zu lösen. Denken Sie für Fall 3 daran, die Funktion onResize () nach jeder Änderung des Navigationsleisteninhalts aufzurufen :
quelle
Definieren Sie einfach eine leere Navigationsleiste vor der festen, um den benötigten Platz zu schaffen.
quelle
navbar
bewirkt.Es passiert, weil mit
navbar-fixed-top
Klasse die Navigationsleiste die bekommtposition:fixed
. Dadurch wird die Navigationsleiste aus dem Dokumentenfluss entfernt, sodass der Körper den Platz hinter der Navigationsleiste einnimmt.Sie müssen sich bewerben
padding-top
odermargin-top
auf Ihrecontainer
, basierend auf Ihren Anforderungen mit Werten>= 50px
. (oder mit verschiedenen Werten herumspielen)Die grundlegende Bootstrap- Navigationsleiste nimmt eine Höhe an
40px
. Wenn Sie also einpadding-top
odermargin-top
von50px
oder mehr geben, haben Sie immer diese Atempause zwischen Ihrem Container und der Navigationsleiste.quelle
Auch ich hatte dieses Problem, löste es aber ohne Skript und nur mit CSS. Ich beginne damit, dem empfohlenen Padding-Top für ein festes Menü zu folgen, indem ich 60px einstelle, wie auf der Bootstrap-Website beschrieben. Dann habe ich drei Medien-Tags hinzugefügt, die die Größe des Auffüllens an den Grenzpunkten ändern, an denen auch die Größe meines Menüs geändert wird.
Ein Hinweis: Wenn meine Menübreite zwischen 768 und 991 liegt, wird das Menü durch das Menülogo in meinem Layout und die
<li>
Optionen in zwei Zeilen umgebrochen. Daher musste ich das Padding-Top anpassen, um zu verhindern, dass das Menü den Inhalt abdeckt, also 110px.Hoffe das hilft...
quelle
Ich weiß, dass dieser Thread alt ist, aber ich bin gerade auf dieses Problem gestoßen und habe es behoben, indem ich einfach die
page-header
Klasse auf meiner Seite unter dem Navi verwendet habe. Ich habe auch das<nav>
Tag anstelle von verwendet,<div>
aber ich bin nicht sicher, ob es ein anderes Verhalten zeigen würde.Wenn Sie das
page-header
als Container für die Seite verwenden, müssen Sie sich<body>
nur dann mit dem herumschlagen, wenn Sie mit dem Standardspeicherplatz, den Sie erhalten, nicht einverstanden sindpage-header
.quelle
Ich habe es mit JQuery gelöst
quelle