PEMBARUAN PENTING: 12/21/15
Saat ini ada bug di Mozilla yang saya temukan yang memecah navbar pada lebar browser tertentu dengan BANYAK DEMOS PADA HALAMAN INI . Pada dasarnya bug mozilla termasuk padding kiri dan kanan pada tautan merek navbar sebagai bagian dari lebar gambar. Namun, ini dapat diperbaiki dengan mudah dan saya sudah menguji ini dan saya cukup yakin itu adalah contoh kerja paling stabil di halaman ini. Ini akan mengubah ukuran secara otomatis dan berfungsi pada semua browser.
Cukup tambahkan ini ke css Anda dan gunakan navbar-brand seperti yang Anda inginkan .img-responsive
. Logo Anda akan secara otomatis sesuai
.navbar-brand {
padding: 0px; /* firefox bug fix */
}
.navbar-brand>img {
height: 100%;
padding: 15px; /* firefox bug fix */
width: auto;
}
Pilihan lain adalah menggunakan gambar latar belakang. Gunakan gambar dari berbagai ukuran dan kemudian atur lebar yang diinginkan:
.navbar-brand {
background: url(http://disputebills.com/site/uploads/2015/10/dispute.png) center / contain no-repeat;
width: 200px;
}
JAWABAN ASLI DI BAWAH (hanya untuk referensi)
Orang-orang tampaknya banyak melupakan objek-fit. Secara pribadi saya pikir ini yang paling mudah untuk dikerjakan karena gambar secara otomatis menyesuaikan dengan ukuran menu. Jika Anda hanya menggunakan objek yang cocok pada gambar itu akan secara otomatis mengubah ukuran ke ketinggian menu.
.navbar-brand > img {
max-height: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain;
}
Itu menunjukkan bahwa ini tidak berfungsi di IE "belum". Ada polyfill , tetapi itu mungkin berlebihan jika Anda tidak berencana menggunakannya untuk hal lain. Memang terlihat seperti objek-fit sedang direncanakan untuk rilis IE di masa depan sehingga setelah itu terjadi ini akan bekerja di semua browser.
Namun, jika Anda melihat kelas .img-responsif di bootstrap, max-width mengasumsikan Anda meletakkan gambar-gambar ini dalam kolom atau sesuatu yang memiliki set eksplisit dengan. Ini berarti bahwa 100% secara khusus berarti lebar elemen induk 100%.
.img-responsive
max-width: 100%;
height: auto;
}
Alasan kami tidak dapat menggunakannya dengan navbar adalah karena induk (.navbar-brand) memiliki ketinggian tetap 50px, tetapi lebarnya tidak ditentukan.
Jika kita mengambil logika itu dan membalikkannya menjadi responsif berdasarkan ketinggian, kita dapat memiliki gambar responsif yang menskala ke ketinggian .navbar-brand dan dengan menambahkan dan mengatur lebar otomatis, itu akan menyesuaikan proporsi.
max-height: 100%;
width: auto;
Biasanya kita harus menambahkan display:block;
skenario, tetapi karena navbar-brand sudah memiliki float: left; diterapkan padanya, ia secara otomatis bertindak sebagai elemen blok.
Anda mungkin mengalami situasi langka di mana logo Anda terlalu kecil. Pendekatan img-responsif tidak memperhitungkan ini, tetapi kami akan melakukannya. Dengan menambahkan atribut "tinggi" ke .navbar-brand > img
Anda dapat yakin bahwa itu akan naik turun.
max-height: 100%;
height: 100%;
width: auto;
Jadi untuk menyelesaikan ini saya menggabungkan keduanya dan tampaknya berfungsi dengan baik di semua browser.
<style type="text/css">
.navbar-brand>img {
max-height: 100%;
height: 100%;
width: auto;
margin: 0 auto;
/* probably not needed anymore, but doesn't hurt */
-o-object-fit: contain;
object-fit: contain;
}
</style>
<nav class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<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="http://disputebills.com"><img src="http://disputebills.com/site/uploads/2015/10/dispute.png" alt="Dispute Bills"></a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
<img src="logo.png" width="27px" />
: sesuaikan