Посмотреть на GitHub Оригинал

Браузеры и устройства

Узнайте о браузерах и устройствах, от современных до старых, которые поддерживаются Bootstrap, включая известные особенности и ошибки для каждого из них.

Поддерживаемые браузеры

Bootstrap поддерживает последние стабильные выпуски всех основных браузеров и платформ. В Windows мы поддерживаем Internet Explorer 10-11 / Microsoft Edge.

Альтернативные браузеры, которые используют последнюю версию WebKit, Blink или Gecko, напрямую или через API веб-представления платформы, явно не поддерживаются. Однако Bootstrap должен (в большинстве случаев) правильно отображаться и работать в этих браузерах. Более конкретная информация о поддержке представлена ниже.

Вы можете найти список поддерживаемых нами браузеров и их версии в нашем файле .browserslistrc:

# https://github.com/browserslist/browserslist#readme

>= 1%
last 1 major version
not dead
Chrome >= 45
Firefox >= 38
Edge >= 12
Explorer >= 10
iOS >= 9
Safari >= 9
Android >= 4.4
Opera >= 30

Мы используем Autoprefixer для обработки предполагаемой поддержки браузеров с помощью префиксов CSS, который использует Browserslist для управления этими версиями браузеров. Обратитесь к их документации, чтобы узнать, как интегрировать эти инструменты в свои проекты.

Мобильные устройства

Вообще говоря, Bootstrap поддерживает последние версии браузеров по умолчанию для каждой основной платформы. Обратите внимание, что прокси-браузеры (такие как Opera Mini, Opera Mobile’s Turbo mode, UC Browser Mini, Amazon Silk) не поддерживаются.

Chrome Firefox Safari Android Browser & WebView Microsoft Edge
Android Поддерживается Поддерживается Нет данных Android v5.0+ supported Поддерживается
iOS Поддерживается Поддерживается Поддерживается Нет данных Поддерживается
Windows 10 Mobile Нет данных Нет данных Нет данных Нет данных Поддерживается

Настольные браузеры

Точно так же поддерживаются последние версии большинства настольных браузеров.

Chrome Firefox Internet Explorer Microsoft Edge Opera Safari
Mac Поддерживается Поддерживается Нет данных Поддерживается Поддерживается Поддерживается
Windows Поддерживается Поддерживается Поддерживается, IE10+ Поддерживается Поддерживается Не поддерживается

Для Firefox, помимо последней нормальной стабильной версии, мы также поддерживаем последнюю версию Firefox Extended Support Release (ESR).

Неофициально Bootstrap должен выглядеть и вести себя достаточно хорошо в Chromium и Chrome для Linux, Firefox для Linux и Internet Explorer 9, хотя официально они не поддерживаются.

Список некоторых ошибок браузера, с которыми приходится бороться Bootstrap, см. в нашей стене ошибок браузера.

Internet Explorer

Поддерживается Internet Explorer 10+; IE9 и ниже нет. Имейте в виду, что некоторые свойства CSS3 и элементы HTML5 не полностью поддерживаются в IE10 или требуют свойств с префиксом для полной функциональности. Посетите Могу ли я использовать… для получения подробной информации о поддержке браузером функций CSS3 и HTML5. Если Вам требуется поддержка IE8-9, используйте Bootstrap 3.

Модальные окна и раскрывающиеся списки на мобильных устройствах

Переполнение и прокрутка

Поддержка overflow: hidden; в элементе <body> весьма ограничена в iOS и Android. С этой целью, когда Вы прокручиваете верхнюю или нижнюю часть модального окна в браузере любого из этих устройств, содержимое <body> начинает прокручиваться. См. Ошибка Chrome #175502 (исправлена в Chrome v40) и Ошибка WebKit #153852.

Текстовые поля iOS и прокрутка

Начиная с iOS 9.2, пока модальное окно открыто, если начальное прикосновение жеста прокрутки находится в пределах текстового <input> или <textarea>, содержимое <body> под модальным окном будет будет прокручиваться вместо самого модального окна. См. Ошибка WebKit #153856.

Выпадающие меню навигационной панели

Элемент .dropdown-backdrop не используется в навигационной панели iOS из-за сложности z-indexing. Таким образом, чтобы закрыть раскрывающиеся списки на панели навигации, Вы должны непосредственно щелкнуть элемент раскрывающегося списка (или любой другой элемент, который вызовет событие щелчка в iOS).

Масштабирование браузера

При масштабировании страницы неизбежно появляются артефакты рендеринга в некоторых компонентах как в Bootstrap, так и в остальной части Интернета. В зависимости от проблемы мы можем ее исправить (сначала выполните поиск, а затем при необходимости откройте проблему). Однако мы склонны игнорировать их, поскольку они часто не имеют прямого решения, кроме хитрых обходных путей.

Прикреплено :hover/:focus на iOS

Хотя :hover невозможно на большинстве сенсорных устройств, iOS эмулирует это поведение, что приводит к «sticky» стилям наведения, которые сохраняются после касания одного элемента. Эти стили наведения удаляются только тогда, когда пользователи касаются другого элемента. Такое поведение считается в основном нежелательным и, похоже, не является проблемой для устройств Android или Windows.

В наши альфа- и бета-версии v4 мы включали неполный и закомментированный код для включения прокладки медиа-запросов, которая отключала бы стили наведения в браузерах сенсорных устройств, которые имитируют наведение. Эта работа никогда не была полностью завершена или включена, но, чтобы избежать полной поломки, мы решили исключить эту прокладку и оставить миксины как ярлыки для псевдоклассы.

Печать

Даже в некоторых современных браузерах печать может быть необычной.

Начиная с Safari v8.0, использование класса .container фиксированной ширины может привести к тому, что Safari будет использовать необычно маленький размер шрифта при печати. Дополнительные сведения см. в issue #14868 и Ошибка WebKit #138192. Один из возможных способов обхода - следующий CSS:

@media print {
  .container {
    width: auto;
  }
}

Стандартный Android-браузер

По умолчанию Android 4.1 (и даже некоторые более новые версии) поставляются с приложением Browser в качестве предпочтительного веб-браузера по умолчанию (в отличие от Chrome). К сожалению, в приложении “Браузер” много ошибок и несоответствий с CSS в целом.

Меню выбора

В элементах <select> стандартный браузер Android не будет отображать боковые элементы управления, если применены параметры border-radius и/или border. (См. этот вопрос на StackOverflow для получения подробной информации.) Используйте приведенный ниже фрагмент кода, чтобы удалить вызывающий нарушение CSS и отобразить <select> как нестилизованный элемент в браузере Android. Сниффинг пользовательского агента позволяет избежать вмешательства в работу браузеров Chrome, Safari и Mozilla.

<script>
$(function () {
  var nua = navigator.userAgent
  var isAndroid = (nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1 && nua.indexOf('Chrome') === -1)
  if (isAndroid) {
    $('select.form-control').removeClass('form-control').css('width', '100%')
  }
})
</script>

Хотите увидеть пример? Посмотрите эту демонстрацию JS Bin.

Валидаторы

Чтобы обеспечить максимальное удобство работы старых браузеров и браузеров с ошибками, Bootstrap использует CSS browser hacks в нескольких местах для нацеливания специального CSS на определенные версии браузера, чтобы обойти ошибки в сами браузеры. Эти хаки по понятным причинам заставляют валидаторов CSS жаловаться на их недействительность. В некоторых случаях мы также используем передовые функции CSS, которые еще не полностью стандартизированы, но используются исключительно для прогрессивного улучшения.

Эти предупреждения о проверке не имеют значения на практике, поскольку не-хакерская часть нашего CSS действительно полностью проверяет, а хакерские части не мешают правильному функционированию не-хакерской части, поэтому мы сознательно игнорируем эти конкретные предупреждения.

В наших HTML-документах также есть несколько тривиальных и несущественных предупреждений проверки HTML из-за того, что мы включили обходной путь для определенной ошибки Firefox.