ВАЖЛИВА ОНОВЛЕННЯ: 21.12.15
Наразі в Mozilla з’явилася помилка, яку я виявив, що розбиває навігаційну панель на певну ширину браузера з МНОГО ДЕМОСИ НА ЦІЙ СТОРІНІ . По суті, помилка mozilla включає в себе ліву та праву накладки на посилання на бренд navbar як частину ширини зображення. Однак це можна легко виправити, і я перевірив це, і я впевнений, що це найбільш стабільний робочий приклад на цій сторінці. Він змінить розмір автоматично і працює у всіх браузерах.
Просто додайте це у свій css та використовуйте бренд navbar так само, як і ви .img-responsive
. Ваш логотип автоматично поміститься
.navbar-brand {
padding: 0px; /* firefox bug fix */
}
.navbar-brand>img {
height: 100%;
padding: 15px; /* firefox bug fix */
width: auto;
}
Ще один варіант - використовувати фонове зображення. Використовуйте зображення будь-якого розміру, а потім просто встановіть потрібну ширину:
.navbar-brand {
background: url(http://disputebills.com/site/uploads/2015/10/dispute.png) center / contain no-repeat;
width: 200px;
}
Оригінальний відповідь нижче (лише для довідки)
Люди, здається, дуже багато забувають про придатність до об'єктів. Особисто я думаю, що з цим працювати найпростіше, оскільки зображення автоматично підлаштовується під розмір меню. Якщо ви просто використовуєте об'єкт, розміщений на зображенні, він автоматично змінить розмір до висоти меню.
.navbar-brand > img {
max-height: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain;
}
Вказувалося, що це не працює в IE "поки". Існує полізаповнення , але це може бути надмірним, якщо ви не плануєте використовувати його для чогось іншого. Схоже , планується відповідність об'єктів для майбутнього випуску IE, тож коли це станеться, це працюватиме у всіх браузерах.
Однак, якщо ви помітили клас .img-чутливий у завантажувальному режимі, максимальна ширина передбачає, що ви розміщуєте ці зображення в стовпці або щось, що має явний з набором. Це означає, що 100% конкретно означає 100% ширину батьківського елемента.
.img-responsive
max-width: 100%;
height: auto;
}
Причина, по якій ми не можемо використовувати це з navbar, полягає в тому, що батьківський (.navbar-бренд) має фіксовану висоту 50px, але ширина не встановлена.
Якщо ми скористаємося цією логікою і повернемо її так, щоб вона відповідала залежно від висоти, ми можемо мати чуйне зображення, яке масштабується до висоти бренду.
max-height: 100%;
width: auto;
Зазвичай нам довелося б додати display:block;
до сценарію, але оскільки навибар-бренд вже має float: left; застосований до нього, він автоматично виступає як блок-елемент.
Ви можете потрапити в рідкісну ситуацію, коли ваш логотип занадто маленький. Підхід, що реагує на імг, не враховує це, але ми будемо. Додавши атрибут "висота" до .navbar-brand > img
вас, ви можете бути впевнені, що він буде масштабуватися як вгору, так і вниз.
max-height: 100%;
height: 100%;
width: auto;
Тож для завершення цього я склав їх і разом, і, здається, вони відмінно працюють у всіх браузерах.
<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" />
: коригування