Buduję projekt za pomocą Bootstrap i mam mały problem. Mam kontener poniżej Nav-top.Moje problem polega na tym, że część mojego kontenera jest ukryta pod nagłówkiem nav-top.Nie chcę używać górnego marginesu z pojemnik. Pls zobacz poniżej html, w którym mam problem
<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
źródło
źródło
Odpowiedzi:
Jest to obsługiwane przez dodanie niektórych
padding
na górze<body>
.Zgodnie z dokumentacją Bootstrap
.navbar-fixed-top
, wypróbuj własne wartości lub użyj poniższego fragmentu kodu. Porada: Domyślnienavbar
jest50px
wysoka.Spójrz także na źródło tego przykładu i otwórz
starter-template.css
.źródło
Wydaje mi się, że problem, który masz, jest związany z dynamiczną wysokością, jaką ma stały pasek nawigacyjny na górze. Na przykład, gdy użytkownik się loguje, musisz wyświetlić coś w rodzaju „ Witaj [nazwa użytkownika] ”, a gdy nazwa jest zbyt szeroka, pasek nawigacyjny musi mieć większą wysokość, aby tekst nie nakładał się na menu paska nawigacyjnego . Ponieważ pasek nawigacyjny ma styl „ position: fixed ”, ciało pozostaje pod nim, a jego wyższa część zostaje ukryta, więc musisz „dynamicznie” zmieniać wypełnienie u góry za każdym razem, gdy zmienia się wysokość paska nawigacyjnego, co może się zdarzyć w następujących sytuacjach scenariusze przypadków:
Ta dynamika nie jest objęta zwykłym CSS, więc mogę wymyślić tylko jeden sposób rozwiązania tego problemu, jeśli użytkownik ma włączoną obsługę JavaScript . Wypróbuj następujący fragment kodu jQuery, aby rozwiązać scenariusze przypadków 1 i 2; w przypadku scenariusza 3 pamiętaj o wywołaniu funkcji onResize () po każdej zmianie zawartości paska nawigacyjnego :
źródło
Po prostu zdefiniuj pusty pasek nawigacyjny przed ustalonym, utworzy potrzebną przestrzeń.
źródło
navbar
robi ten dodatek .Dzieje się tak, ponieważ wraz z
navbar-fixed-top
klasą pasek nawigacyjny otrzymuje rozszerzenieposition:fixed
. To z kolei usuwa pasek nawigacyjny z przepływu dokumentu, pozostawiając ciało, aby zająć miejsce za paskiem nawigacyjnym.Musisz złożyć wniosek
padding-top
lubmargin-top
do swojegocontainer
, w oparciu o swoje wymagania z wartościami>= 50px
. (lub pobaw się różnymi wartościami)Podstawowy pasek nawigacyjny bootstrap ma wysokość około
40px
. Więc jeśli podaszpadding-top
lubmargin-top
z50px
lub więcej, będziesz zawsze mieć tego wytchnienia pomiędzy swoim pojemniku i paska nawigacyjnego.źródło
Ja też miałem ten problem, ale rozwiązałem go bez skryptu i używając tylko CSS. Zaczynam od przestrzegania zalecanego górnego wypełnienia dla stałego menu, ustawiając 60px opisane na stronie Bootstrap. Następnie dodałem trzy tagi multimedialne, które zmieniają rozmiar wypełnienia w punktach odcięcia, w których zmienia się również rozmiar mojego menu.
Jedna uwaga, kiedy szerokość mojego menu wynosi od 768 do 991, logo menu w moim układzie plus
<li>
opcje powodują zawijanie menu do dwóch wierszy. Dlatego musiałem dostosować dopełnienie góry, aby menu nie zakrywało zawartości, stąd 110px.Mam nadzieję że to pomoże...
źródło
Wiem, że ten wątek jest stary, ale właśnie wpadłem w ten problem i naprawiłem go, używając
page-header
klasy na mojej stronie, pod nawigacją. Użyłem też<nav>
tagu zamiast<div>
ale nie jestem pewien, czy będzie prezentował inne zachowanie.Używając
page-header
jako kontenera strony, nie będziesz musiał bawić się z<body>
, tylko jeśli nie zgadzasz się z domyślną przestrzenią, którąpage-header
daje ci.źródło
rozwiązałem to za pomocą jquery
źródło