Saya punya kode Bootstrap Twitter ini
<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>
Tetapi ketika saya melihat awal halaman, bilah nav memblokir beberapa konten yang ada di dekat bagian atas halaman. Adakah ide untuk membuatnya menekan sisa konten lebih rendah ketika bagian atas halaman dilihat sehingga konten tidak diblokir oleh bilah navigasi?
css
twitter-bootstrap
GeekedOut
sumber
sumber
Jawaban:
Tambahkan ke CSS Anda:
Dari dokumentasi Bootstrap :
sumber
Menambahkan padding seperti itu tidak cukup jika Anda menggunakan bootstrap responsif. Dalam hal ini ketika Anda mengubah ukuran jendela Anda, Anda akan mendapatkan celah antara bagian atas halaman dan navbar. Solusi yang tepat terlihat seperti ini:
sumber
Untuk bootstrap 3, kelas
navbar-static-top
bukannyanavbar-fixed-top
mencegah masalah ini, kecuali jika Anda memerlukan navbar untuk selalu terlihat.sumber
solusi yang jauh lebih berguna untuk referensi Anda, ini berfungsi sempurna di semua proyek saya:
ubah 'div' pertama Anda dari
untuk
sumber
Saya menggunakan jQuery untuk mengatasi masalah ini. Ini cuplikan untuk BS 3.0.0:
sumber
Saya sudah sukses dengan membuat nav bar non-fix dummy tepat sebelum nav bar tetap saya yang sebenarnya.
Spasi bekerja dengan baik pada semua ukuran layar.
sumber
Dalam proyek saya yang berasal dari tutorial MVC 5 saya menemukan bahwa mengubah bantalan tubuh tidak berpengaruh. Berikut ini bekerja untuk saya:
Ini menyelesaikan kasus di mana navbar dilipat menjadi 2 atau 3 baris. Ini dapat dimasukkan ke dalam bootstrap.css di mana saja setelah baris body {margin: 0; }
sumber
Bootstrap v4 template starter css menggunakan:
sumber
Seperti terlihat pada contoh ini dari Twitter, tambahkan ini sebelum baris yang menyertakan deklarasi gaya responsif:
Seperti itu:
sumber
dengan navbar navbar-default semuanya berfungsi dengan baik, tetapi jika Anda menggunakan navbar-fix-top Anda harus memasukkan custom style body {padding-top: 60px;} jika tidak, ia akan memblokir konten di bawahnya.
sumber
Dua masalah akan terjadi di sini:
Bootstrap 4 w / tautan halaman internal
Untuk memperbaiki 1), seperti yang dikatakan Martijn Burger di atas, css template starter bootstrap v4 menggunakan:
Untuk memperbaiki 2) lihat masalah ini . Sebagian besar kode ini berfungsi (tetapi tidak pada klik kedua hash yang sama):
Kode ini menjiwai tautan A dengan jQuery (bukan slim jQuery):
sumber
Solusi terbaik yang saya temukan sejauh ini, yang tidak melibatkan ketinggian dan breakpoint pengkodean yang sulit adalah menambahkan
<nav...
tag tambahan ke markup.Dengan melakukannya dengan cara ini
@media
breakpoint identik, tingginya identik (asalkan Andanavbar-brand
adalah objek tertinggi dinavbar
tetapi Anda dapat dengan mudah mengganti elemen lain di nonfixed-top
navbar.Di mana ini gagal adalah dengan pembaca layar yang sekarang akan menyajikan 2
navbar-brand
elemen. Ini menunjukkan perlunyanot-for-sr
kelas untuk mencegah elemen tersebut muncul untuk pembaca layar. Namun kelas itu tidak ada https://getbootstrap.com/docs/4.0/utilities/screenreaders/Saya telah mencoba untuk mengkompensasi masalah pembaca layar dengan
aria-hidden="true"
tetapi https://www.accessibility-developer-guide.com/examples/sensible-aria-usage/hidden/ tampaknya menunjukkan ini mungkin tidak akan berfungsi ketika pembaca layar dihidupkan. dalam mode fokus yang tentu saja satu-satunya saat Anda benar-benar membutuhkannya untuk bekerja ...sumber
menggunakan
percentage
adalah solusi yang jauh lebih baik daripadapixels
.Jika perlu Anda masih bisa eksplisit dengan menambahkan berbeda
breakpoints
seperti yang disebutkan dalam jawaban lain oleh@spajus
sumber
EDIT: Solusi ini tidak dapat digunakan untuk versi Bootstrap yang lebih baru, di mana kelas atas navbar-inverse dan navbar-static-top tidak tersedia.
Menggunakan MVC 5, cara saya memperbaiki tambang, adalah dengan menambahkan Site.css saya sendiri, dimuat setelah yang lain, dengan baris berikut:
body{padding: 0}
dan saya mengubah kode di awal _Layout.cshtml, menjadi:
sumber
navbar-static-top
tidak didefinisikan dalam Bootstrap4. Tidak juganavbar-inverse
Jika navbar Anda ada di bagian atas halaman, atur nilainya menjadi 0. Jika tidak, tetapkan nilai untuk
data-offset-top
nilai konten di atas navbar Anda.Sementara itu, Anda perlu memodifikasi
css
:sumber
Tambahkan ini:
sumber
Anda harus menambahkan
untuk tidak menghancurkan footer lengket atau sesuatu yang lain
sumber
Tambahkan ke JS Anda:
sumber
Anda dapat mengatur margin berdasarkan resolusi layar
sumber