Menurunkan tinggi navbar bootstrap 3.0

108

Saya mencoba untuk mengurangi tinggi navbar bootstrap 3.0 yang digunakan dengan perilaku teratas tetap. Di sini saya menggunakan kode.

HTML

<div class="tnav">
<div class="navbar navbar-fixed-top" role="banner">
    <div class="navbar-inner-sm">
  <div class="container">
    <div class="navbar-header">
      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>
    <nav class="collapse navbar-collapse" role="navigation">
      <ul class="nav navbar-nav pull-right">
        <li class="active">
          <a href="../getting-started">Getting started</a>
        </li>
        <li>
          <a href="../css">Ext01</a>
        </li>
        <li>
          <a href="../components">Language</a>
        </li>
        <li>
          <a href="../javascript">My Account</a>
        </li>
        <li>
          <a href="../customize">Sign Out</a>
        </li>
      </ul>
    </nav>
  </div>
    </div>
</div>

CSS

.tnav .navbar { background:#F06; height:30px; }
.navbar-inner-sm{background-color: #282828;padding: 1px 20px;background-repeat: repeat-x;-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);background-image: linear-gradient(top, #333333, #222222);}
.navbar-inner-sm .nav {position: relative;left: 0;display: block;float: left;margin: 0 10px 0 0;}
.navbar-inner-sm .nav.pull-right {float: right;}
.navbar-inner-sm .nav > li {display: block;float: left;}
.navbar-inner-sm .nav > li > a {float: none;padding: 4px 5px;line-height: 19px;color: #999999;text-decoration: none;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);}
.navbar-inner-sm .nav > li > a:hover {background-color: transparent;color: #ffffff;text-decoration: none;}
.navbar-inner-sm .nav .active > a,.navbar .nav .active > a:hover {color: #ffffff;text-decoration: none;background-color: #003753;}
.navbar-inner-sm .divider-vertical {height: 27px;width: 1px;margin: 0 9px;overflow: hidden;background-color: #282828;border-left: 1px solid #3f3f3f; border-right: 1px solid #161616;}
.navbar-inner-sm .nav.pull-right {margin-left: 10px;margin-right: 0;}

Hasil

masukkan deskripsi gambar di sini

Dari layar itu terlihat, bilah navigasi menurun dalam output tetapi ketinggian tidak berkurang. tinggi asli ditampilkan dalam warna merah muda.

Script css di atas hampir bekerja dengan baik di bootstrap 2. *

Apakah ada cara untuk menurunkan ketinggian dengan benar.

irfanmcsd
sumber
Tidak perlu lagi <div class = "navbar-inner"> di Bootstrap 3
Bartek S
navbar-inner adalah kelas khusus saya. tidak terkait dengan bootstrap 3.0.
irfanmcsd
Satu-satunya cara yang berhasil untuk saya dijelaskan di tautan ini: stackoverflow.com/questions/19576175/… Ini mengurangi tinggi navbar hanya dengan dua baris kode
giovannim

Jawaban:

124

Setelah menghabiskan beberapa jam, menambahkan kelas css berikut memperbaiki masalah saya.

Bekerja dengan Bootstrap 3.0. *

.tnav .navbar .container { height: 28px; }

Bekerja dengan Bootstrap 3.3.4

.navbar-nav > li > a, .navbar-brand {
    padding-top:4px !important; 
    padding-bottom:0 !important;
    height: 28px;
}
.navbar {min-height:28px !important;}

Perbarui kode Lengkap untuk menyesuaikan dan mengurangi ketinggian navbar dengan tangkapan layar.

masukkan deskripsi gambar di sini

CSS:

/* navbar */
.navbar-primary .navbar { background:#9f58b5; border-bottom:none; }
.navbar-primary .navbar .nav > li > a {color: #501762;}
.navbar-primary .navbar .nav > li > a:hover {color: #fff; background-color: #8e49a3;}
.navbar-primary .navbar .nav .active > a,.navbar .nav .active > a:hover {color: #fff; background-color: #501762;}
.navbar-primary .navbar .nav li > a .caret, .tnav .navbar .nav li > a:hover .caret {border-top-color: #fff;border-bottom-color: #fff;}
.navbar-primary .navbar .nav > li.dropdown.open.active > a:hover {}
.navbar-primary .navbar .nav > li.dropdown.open > a {color: #fff;background-color: #9f58b5;border-color: #fff;}
.navbar-primary .navbar .nav > li.dropdown.open.active > a:hover .caret, .tnav .navbar .nav > li.dropdown.open > a .caret {border-top-color: #fff;}
.navbar-primary .navbar .navbar-brand {color:#fff;}
.navbar-primary .navbar .nav.pull-right {margin-left: 10px; margin-right: 0;}
.navbar-xs .navbar-primary .navbar { min-height:28px; height: 28px; }
.navbar-xs .navbar-primary .navbar .navbar-brand{ padding: 0px 12px;font-size: 16px;line-height: 28px; }
.navbar-xs .navbar-primary .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 28px; }
.navbar-sm .navbar-primary .navbar { min-height:40px; height: 40px; }
.navbar-sm .navbar-primary .navbar .navbar-brand{ padding: 0px 12px;font-size: 16px;line-height: 40px; }
.navbar-sm .navbar-primary .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 40px; }

Kode Penggunaan:

<div class="navbar-xs">
   <div class="navbar-primary">
       <nav class="navbar navbar-static-top" role="navigation">
          <!-- Brand and toggle get grouped for better mobile display -->
          <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-8">
                 <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>
          <!-- Collect the nav links, forms, and other content for toggling -->
          <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-8">
              <ul class="nav navbar-nav">
                  <li class="active"><a href="#">Home</a></li>
                  <li><a href="#">Link</a></li>
                   <li><a href="#">Link</a></li>
              </ul>
          </div><!-- /.navbar-collapse -->
      </nav>
  </div>
</div>
irfanmcsd
sumber
4
ini tidak berhasil ... periksa jawaban saya di halaman ini ... min-height untuk .navbar disetel ke 50px secara default, jadi jika Anda menyetel tinggi ke 28px itu akan diganti dengan min-tinggi 50px. ..
patrick
3
Ah, saya melihat posting ini telah diedit (banyak!) Dan sekarang memang menunjukkan kode yang benar. Saya juga melihat pengaturan min-height yang saya sarankan di posting saya di sini yang karena alasan tertentu mendapat suara turun. Sangat menyebalkan untuk mendapatkan suara negatif pada jawaban yang benar, sesuai topik dan jelas ...
patrick
@patrick tidak tahu apa yang Anda maksud, tetapi pada saat masalah saya diselesaikan dengan jawaban saya sendiri. reputasi tidak diragukan lagi, jika orang memberi saya suara naik atau turun.
irfanmcsd
1
Mengedit sumber akan membuat ini lebih mudah
Lukas
Lucu, ini tidak berhasil untukku. Saya harus mengganti ketinggian tetap 50px;
Kevin
43

Solusi kerja:

Bootstrap 3.0 secara default memiliki bantalan 15px di bagian atas dan bawah, jadi kita hanya perlu menggantinya!

Sebagai contoh:

.navbar-nav > li > a {padding-top:10px !important; padding-bottom:10px !important;}
.navbar {min-height:40px !important}
Ranveer
sumber
Standarnya adalah 10px di bootstrap.css? .navbar-nav> li> a {padding-top: 10px; padding-bottom: 10px; tinggi baris: 20px; }
jichi
1
Lihat nomor baris 3884 di bootstrap.css (v3.0.2). Ini .navbar-nav > li > a {padding-top: 15px; padding-bottom: 15px;}secara default.
Ranveer
Tidak yakin tentang v3.0.2. Tapi di baris v3.0.3 4541 di bootstrap.css, itu adalah: .navbar-nav> li> a {padding-top: 10px; padding-bottom: 10px; tinggi baris: 20px; }
jichi
Anda, Pak, adalah pahlawan saya.
orokusaki
40

Cukup ganti min-height yang disetel di .navbar seperti ini:

.navbar{
  min-height:20px; //* or whatever height you require
}

Mengubah tinggi elemen menjadi lebih kecil dari tinggi min tidak akan membuat perbedaan ...

patrick
sumber
seperti yang Anda lihat di navbar saya sudah menggunakan properti ketinggian tetapi tidak berpengaruh.
irfanmcsd
itu adalah properti min-height, bukan tinggi ... jika Anda mengatur tinggi ke angka yang lebih rendah dari min-height, min-height akan mencegahnya menjadi lebih kecil ...
patrick
7
Mengapa ini mendapat downvote ?? Ini adalah solusi yang berfungsi untuk masalah yang ditetapkan di posting ini. Bisakah moderator melihat ini, tolong, sepertinya ada downvoter yang hanya merendahkan hal-hal yang tidak dia setujui tanpa memeriksa jawaban sebenarnya. Tautan yang diposting lebih lanjut 2,5 bulan setelah posting saya memiliki jawaban yang sama, ada di tautan eksternal, dan mendapat dua suara positif. Saya benci jika orang mencairkan SO dengan suara negatif acak!
patrick
Saya sering bertanya pada diri sendiri bagaimana orang-orang sekarang mendapat downvote, apakah Anda mendapat notifikasi? Tidak dapat menemukan ini di meta
Iulian Onofrei
5
tidak ada pemberitahuan ... tampaknya orang memberikan suara negatif jika menurut mereka jawaban lain lebih baik atau sesuatu ... Saya tidak tahu ... Dalam hal ini orang yang mengajukan pertanyaan mengambil jawaban saya dalam jawabannya sendiri dan menerima jawaban itu .. Agak payah jika Anda bertanya kepada saya ... Tapi sekali lagi, situs ini bukan tentang ego, ini tentang membantu orang lain ...
patrick
27

jika Anda menggunakan sumber yang lebih sedikit, harus ada variabel untuk tinggi navbar di variables.lessfile. Jika Anda tidak menggunakan sumbernya, Anda dapat menyesuaikannya menggunakan utilitas kustomisasi yang disediakan situs bootstrap. Dan kemudian Anda dapat mengunduhnya dan memasukkannya ke dalam proyek Anda. Variabel yang Anda cari adalah:@navbar-height

AJ Meyghani
sumber
1
tetapi saya tidak ingin mengubah perilaku bilah navigasi asli. saya hanya mengubah tinggi untuk bilah navigasi atas tambahan.
irfanmcsd
2
Saya pikir itu solusi terbaik.
Imtiaz
1
Ini adalah solusi terbaik jika Anda hanya memiliki satu navigasi di situs dan tingginya harus setinggi itu. Jika Anda memiliki beberapa navigasi, ini akan menjadi sedikit lebih sulit, karena .navbar-vertical-align digunakan di beberapa tempat dan memiliki referensi yang jelas ke @ navbar-height.
Carl Bussema
solusi yang bagus. selama Anda tidak berencana menggunakan CDN
eagor
1
Selama Anda menggunakan penggantian secara terpisah. Sebagian kecil, ini adalah solusi terbaik dan memungkinkan Anda untuk meningkatkan bootstrap tanpa masalah.
Ken Prince
9

Ini pengalaman saya

 .navbar { min-height:38px;   }
 .navbar .navbar-brand{ padding: 0 12px;font-size: 16px;line-height: 38px;height: 38px; }
 .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 38px; }
 .navbar .navbar-toggle {  margin-top: 3px; margin-bottom: 0px; padding: 8px 9px; }
 .navbar .navbar-form { margin-top: 2px; margin-bottom: 0px }
 .navbar .navbar-collapse {border-color: #A40303;}

ubah tinggi navabr menjadi 38px

Hoàng Vũ Tgtt
sumber
Tambahkan ini untuk menangani .navbar-form:.navbar .navbar-form { margin-top: 2px; margin-bottom: 0px }
steph643
Ekstensi lain: .navbar .navbar-text {margin-top: 0px; margin-bottom: 0px; tinggi baris: 38px; }
cnmuc
3

Jika kalian membuat stylesheet dengan LESS / SASS dan mengimpor Bootstrap di sana, saya telah menemukan bahwa mengesampingkan variabel @ navbar-height memungkinkan Anda mengatur tinggi navbar, yang awalnya ditentukan di file variable.less.

masukkan deskripsi gambar di sini


sumber
3

Ingin menambahkan 2 pence saya dan terima kasih kepada James Poulose atas jawaban aslinya, itu adalah satu-satunya yang berhasil untuk proyek khusus saya (MVC 5 dengan versi terbaru dari Bootstrap 3).

Ini sebagian besar ditujukan untuk pemula, untuk kejelasan dan untuk membuat pengeditan lebih mudah di masa mendatang, saya sarankan Anda menambahkan bagian di bagian bawah file CSS Anda untuk proyek Anda misalnya saya suka melakukan ini:

/* Bootstrap overrides */

.some-class-here {
}

Mengambil jawaban James Poulose di atas saya melakukan ini:

/* Bootstrap overrides */   
.navbar-nav > li > a { padding-top: 8px !important; padding-bottom: 5px !important; }
.navbar { min-height: 32px !important; }
.navbar-brand { padding-top: 8px; padding-bottom: 10px; padding-left: 10px; }

Saya mengubah nilai padding-top untuk mendorong teks ke bawah pada elemen navbar saya. Anda dapat mengganti hampir semua elemen Bootstrap seperti ini dan ini adalah cara yang baik untuk membuat perubahan tanpa mengacaukan kelas dasar Boostrap karena hal terakhir yang ingin Anda lakukan adalah membuat perubahan di sana dan kemudian menghilangkannya saat Anda memperbarui Bootstrap!

Akhirnya untuk pemisahan yang lebih banyak lagi saya ingin membagi file CSS saya dan menggunakan deklarasi @import untuk mengimpor sub-file Anda ke dalam satu File CSS utama untuk memudahkan pengelolaan misalnya:

@import url('css/mysubcssfile.css');

catatan : jika Anda menarik banyak file, Anda perlu memastikan file dimuat dalam urutan yang benar.

Semoga ini bisa membantu seseorang.

Tahir Khalid
sumber
2

Saya pikir kita bisa menulis gaya yang lebih sedikit ini, tanpa mengubah warna yang ada. Berikut ini bekerja untuk saya (di Bootstrap 3.2.0)

.navbar-nav > li > a { padding-top: 5px !important; padding-bottom: 5px !important; }
.navbar { min-height: 32px !important; }
.navbar-brand { padding-top: 5px; padding-bottom: 10px; padding-left: 10px; }

Yang terakhir ('navbar-brand') sebenarnya dibutuhkan hanya jika Anda memiliki teks sebagai nama 'merek' Anda.

James Poulose
sumber
Jawaban yang bagus, ini adalah satu-satunya yang bekerja untuk saya dengan versi terbaru dari Bootstrap 3 (catatan: jika Anda ingin menekan teks Anda, tingkatkan nilai padding-top untuk kelas .navbar-brand serta .navbar-nav> li> kelas.
Tahir Khalid
0

Saya mendapat masalah yang sama, ketinggian bilah menu yang saya sediakan oleh bootstrap terlalu besar, sebenarnya saya mengunduh beberapa bootstrap yang salah, akhirnya singkirkan dengan mengunduh bootstrap orignal dari situs ini .. http://getbootstrap.com/2.3 .2 / ingin menggunakan bootstrap di yii (netbeans) ikuti tutorial ini, https://www.youtube.com/watch?v=XH_qG8gphaw ... Suara tidak ada tetapi langkah-langkahnya lambat sehingga Anda dapat dengan mudah memahami dan menerapkan mereka. Terima kasih

Usman I
sumber
Apa dalam kode yang Anda ubah untuk mendapatkan efek yang diinginkan? Jika Anda menunjuk ke sebuah link dalam sebuah jawaban, Anda harus meringkas solusinya.
Brian