В настоящее время в 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 "пока". Существует polyfill , но это может быть чрезмерно, если вы не планируете использовать его для чего-либо еще. Похоже, подгонка объекта планируется , планируется для будущего выпуска IE, поэтому, как только это произойдет, это сработает во всех браузерах.
Однако, если вы заметили, что .img-отзывчивый класс в начальной загрузке, максимальная ширина предполагает, что вы помещаете эти изображения в столбцы или что-то, что имеет явное с set. Это будет означать, что 100% означает 100% ширину родительского элемента.
.img-responsive
max-width: 100%;
height: auto;
}
Причина, по которой мы не можем использовать это с панелью навигации, заключается в том, что родительский элемент (.navbar-brand) имеет фиксированную высоту 50 пикселей, но ширина не установлена.
Если мы возьмем эту логику и перевернем , чтобы она была отзывчивой на основе высоты, мы можем получить адаптивное изображение, которое масштабируется до высоты .navbar-brand, добавляя и автоматически устанавливая ширину. будет приспосабливаться к пропорции.
max-height: 100%;
width: auto;
Обычно нам нужно добавить display:block;
к сценарию, но так как у navbar-brand уже есть float: left; Применительно к нему он автоматически действует как блочный элемент.
Вы можете столкнуться с редкой ситуацией, когда ваш логотип слишком маленький. Подход img-отзывчивый не принимает это во внимание, но мы будем. Также добавив атрибут «height» в .navbar-brand > img
, вы можете быть уверены, что он будет увеличиваться и уменьшаться.
max-height: 100%;
height: 100%;
width: auto;
Итак, чтобы завершить это, я собрал их вместе, и, похоже, он отлично работает во всех браузерах.
Вам нужно будет заменить параметр обратного вызова (в настоящее время cbfunc
) в URL-адресе на ?
. jQuery автоматически заменит ?
правильным обратным вызовом.
$.getJSON(
"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22UTG.L%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?", // the ? at the end is the key
function(data) {
// and now do anything you want to with the data (this is just an example)
var html = []; // we're using an array and join for IE performance reasons
data = data.query;
for (var key in data) {
html.push([key, ' = ', data[key]].join(''));
}
$('#debug').html(html.join('<br />'));
}
);
Обновление : Вот демонстрация: http://jsbin.com/owebo