Mam ten kod Bootstrap na Twitterze
<div class='navbar navbar-fixed-top'>
<div class='navbar-inner'>
<div class='container'>
<a class='btn btn-navbar' data-target='.nav-collapse' data-toggle='collapse'>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
</a>
<div class='nav-collapse'>
<ul class='nav'>
<li class='active'>
<a href='some_url'>My Home</a>
</li>
<li>
<a href='some_url'>Option 1 </a>
</li>
<li>
<a href='some_url'>Another option</a>
</li>
<li>
<a href='some_url'>Another option</a>
</li>
</ul>
</div>
</div>
</div>
</div>
Ale gdy przeglądam początek strony, pasek nawigacyjny blokuje niektóre treści znajdujące się w górnej części strony. Masz pomysł, jak przesunąć resztę zawartości w dół, gdy przeglądana jest góra strony, aby zawartość nie była blokowana przez pasek nawigacyjny?
css
twitter-bootstrap
GeekedOut
źródło
źródło
Odpowiedzi:
Dodaj do swojego CSS:
Z dokumentów Bootstrap :
źródło
Dodanie takiego wypełnienia nie wystarczy, jeśli używasz responsywnego bootstrapu. W takim przypadku po zmianie rozmiaru okna pojawi się przerwa między górą strony a paskiem nawigacyjnym. Właściwe rozwiązanie wygląda następująco:
źródło
W przypadku bootstrap 3 klasa
navbar-static-top
zamiastnavbar-fixed-top
zapobiega temu problemowi, chyba że pasek nawigacyjny jest zawsze widoczny.źródło
o wiele bardziej przydatne rozwiązanie w celach informacyjnych, działa idealnie we wszystkich moich projektach:
zmień swój pierwszy „div” z
do
źródło
Korzystam z jQuery, aby rozwiązać ten problem. To jest fragment kodu BS 3.0.0:
źródło
Odniosłem duży sukces, tworząc fałszywy, niezmienny pasek nawigacyjny tuż przed moim prawdziwym stałym paskiem nawigacyjnym.
Odstępy sprawdzają się doskonale na wszystkich rozmiarach ekranu.
źródło
W moim projekcie pochodzącym z samouczka MVC 5 odkryłem, że zmiana wyściółki ciała nie miała żadnego wpływu. Dla mnie działało:
Rozwiązuje przypadki, w których pasek nawigacyjny składa się w 2 lub 3 linie. Można go wstawić do bootstrap.css w dowolnym miejscu po treści linii {margin: 0; }
źródło
Szablon startowy css bootstrap v4 używa:
źródło
Jak widać na tym przykładzie z Twittera, dodaj to przed wierszem zawierającym deklaracje stylów responsywnych:
Tak jak:
źródło
z navbar domyślnie navbar wszystko działa dobrze, ale jeśli używasz navbar-fixed-top , musisz dołączyć niestandardowy styl body {padding-top: 60px;}, inaczej zablokuje zawartość pod spodem.
źródło
Staną się tutaj dwa problemy:
Bootstrap 4 z wewnętrznymi linkami do stron
Aby naprawić 1), jak powiedział powyżej Martijn Burger, szablon startowy css bootstrap v4 używa:
Aby naprawić 2) sprawdź ten problem . Ten kod działa głównie (ale nie przy drugim kliknięciu tego samego skrótu):
Ten kod animuje linki A z jQuery (nie slim jQuery):
źródło
Najlepszym rozwiązaniem, jakie do tej pory znalazłem, które nie wymaga sztywnego kodowania wysokości i punktów przerwania, jest dodanie dodatkowego
<nav...
znacznika do znaczników.Robiąc to w ten sposób,
@media
punkty przerwania są identyczne, wysokość jest identyczna (pod warunkiem, że twójnavbar-brand
jest najwyższym obiektem w,navbar
ale możesz łatwo zastąpić inny element wfixed-top
pasku innym niż navbar.Jeśli to się nie powiedzie, to czytniki ekranu, które będą teraz prezentować 2
navbar-brand
elementy. Wskazuje to na potrzebę istnienianot-for-sr
klasy, która uniemożliwi wyświetlanie tego elementu w czytnikach ekranu. Jednak ta klasa nie istnieje https://getbootstrap.com/docs/4.0/utilities/screenreaders/Próbowałem naprawić problem z czytnikiem ekranu,
aria-hidden="true"
ale https://www.accessibility-developer-guide.com/examples/sensible-aria-usage/hidden/ wydaje się wskazywać, że to prawdopodobnie nie zadziała, gdy czytnik ekranu jest w trybie ustawiania ostrości, który jest oczywiście jedynym czasem, kiedy potrzebujesz go do pracy ...źródło
używanie
percentage
jest znacznie lepszym rozwiązaniem niżpixels
.W razie potrzeby możesz nadal być wyraźny, dodając inny,
breakpoints
jak wspomniano w innej odpowiedzi autorstwa@spajus
źródło
EDYCJA: To rozwiązanie nie jest wykonalne w nowszych wersjach Bootstrap, w których klasy navbar-inverse i navbar-static-top nie są dostępne.
Za pomocą MVC 5, w sposób, w jaki naprawiłem mój, było po prostu dodanie własnego Site.css, załadowanego po innych, w następującym wierszu:
body{padding: 0}
i zmieniłem kod na początku _Layout.cshtml, aby był:
źródło
navbar-static-top
nie jest zdefiniowany w Bootstrap4. Ani teżnavbar-inverse
Jeśli pasek nawigacyjny znajduje się początkowo na górze strony, ustaw wartość na 0. W przeciwnym razie ustaw wartość na
data-offset-top
wartość zawartości powyżej paska nawigacyjnego.W międzyczasie musisz zmodyfikować
css
:źródło
Dodaj:
źródło
powinieneś dodać
aby nie zniszczyć lepkiej stopki lub czegoś innego
źródło
Dodaj do swojego JS:
źródło
margines można ustawić na podstawie rozdzielczości ekranu
źródło