Twitter bootstrap 3 RC2 - Навигация в IE8 не работает

Я использую Twitter Bootstrap 3 RC2 для создания навигационной панели в верхней части моей страницы, которая отлично работает, за исключением IE8.

В IE8 действуют такие действия, как будто браузер был сделан небольшим, так что меню рушится для мобильного просмотра. Но это не так.

Теперь я знаю, что TB3 все еще работает. Но я хотел бы знать, есть ли у кого-нибудь решение для этого здесь.


Если вы хотите проверить мою проблему с IE8, посмотрите здесь:

http://jsfiddle.net/DnwJN/embedded/result/

(вам нужна прямая ссылка, потому что JSFiddle он сам не работает с IE8)

И вот JSFiddle:

http://jsfiddle.net/DnwJN/


Вы увидите, что navbar отлично работает в любом другом браузере. Даже IE9. Но не IE8. И TB3 поддерживает IE8. Они отказались от поддержки IE7 и ниже.

У кого-нибудь есть решение этой проблемы?


Код скрипта

<nav class="navbar" 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=".navbar-ex1-collapse">
      <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="#">Title</a>
  </div>

  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse navbar-ex1-collapse">
    <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>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
        <ul class="dropdown-menu">
          <li><a href="#">Action</a></li>
          <li><a href="#">Another action</a></li>
          <li><a href="#">Something else here</a></li>
          <li><a href="#">Separated link</a></li>
          <li><a href="#">One more separated link</a></li>
        </ul>
      </li>
    </ul>
    <form class="navbar-form navbar-left" role="search">
      <div class="form-group">
          <input type="text" class="form-control" placeholder="Search" />
      </div>
      <button type="submit" class="btn btn-default">Submit</button>
    </form>
    <ul class="nav navbar-nav navbar-right">
      <li><a href="#">Link</a></li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
        <ul class="dropdown-menu">
          <li><a href="#">Action</a></li>
          <li><a href="#">Another action</a></li>
          <li><a href="#">Something else here</a></li>
          <li><a href="#">Separated link</a></li>
        </ul>

      </li>
    </ul>
  </div><!-- /.navbar-collapse -->
</nav>

Ответы

Ответ 1

Надеюсь, что это поможет...

Из http://getbootstrap.com/getting-started/:

    <!-- Enable responsive features in IE8 with Respond.js (https://github.com/scottjehl/Respond) -->
    <script src="js/respond.js"></script>
</body>

Ответ 2

Также обратите внимание на то, что вы должны включить этот код:

<!--[if lt IE 9]>
  <script src="${rc.getContextPath()}/js/vendor/html5shiv.js"></script>
  <script src="${rc.getContextPath()}/js/vendor/respond.min.js"></script>
<![endif]-->

ПОСЛЕ все css включены для правильной работы.

Ответ 3

после добавления html5shim у меня все еще возникали проблемы с выпадающим списком в ie8.
нашел эту статью https://github.com/twbs/bootstrap/issues/6548, которая объясняет, что фильтры мешают. bootstrap имеет фильтр по умолчанию на панели навигации, поэтому вы должны это очистить. вот что сработало для меня.

.navbar-inverse .nav li.dropdown.open>.dropdown-toggle, .navbar-inverse .nav
li.dropdown.active>.dropdown-toggle, .navbar-inverse .nav    
li.dropdown.open.active>.dropdown-toggle,
.navbar, .navbar-inverse .navbar-inner {
    background-color: #15317E;
    border-color: #252525;
    filter:none;
    background-image: none;
}

Ответ 4

Vanilla Bootstrap 3 по умолчанию использует jQuery 2. Поэтому, чтобы заставить его работать в IE8, вам нужно изменить версию jQuery на меньшее, чем jQuery 2.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Включите эти два сценария:

<script type='text/javascript' src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<script type='text/javascript' src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js"></script>

Самое главное, использовать веб-сервер для просмотра вашего сайта (с протоколом http://или https://, поскольку файл://протокол прерывает выполнение response.js).

Ответ 5

Попробуйте добавить

<!-- HTML5 shim for IE backwards compatibility -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<![endif]-->

к вашему коду и проверьте или используйте modernizer.js или normalizer.js. Также проверьте http://getbootstrap.com/getting-started/#browsers, где говорится, что включить response.js для включения поддержки медиа-запросов.

Ответ 6

Для меня это была моя версия jquery. jQuery 2.0.2 не очень хорошо работал с bootstrap 3 в IE8, но jQuery 1.9.1 работал отлично. Не тестировал его с помощью jQuery 1.10.1. Переключите версию jQuery и посмотрите, работает ли она

Ответ 7

hey use modernizr js, потому что i8 и более ранние версии не поддерживают бар, потому что это нам html5.Для этого используйте модернизатор js.:)

модернизатор

Ответ 8

в основном проверьте meta http-equiv tag, если он не включен в ваш файл, добавьте этот

 <meta http-equiv="X-UA-Compatible" content="IE=edge">

bootstrap3 работает отлично, т.е. только 8, вы обязательно добавите response.js, html5shiv.

вот так:

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
 <!--[if lt IE 9]>
  <script src="js/html5shiv.js"></script>
  <script src="js/respond.min.js"></script>
<![endif]-->  

Ответ 9

Также вам нужно убедиться, что ваш CSS включен через <link>, а не @import

Ответ 10

Теперь, в 2017 году, я только что узнал что-то, что говорит о том, что все ответы выше --- с участием html5shiv, response.js и jquery < 2.0 --- являются необходимыми.

Это: перейти к последнему бутстрапу (теперь 3.3.7) здесь, затем прокрутите вниз до коллекция примеров, а затем нажмите на первый "Navbars in action" слева. Вы обнаружите, что элемент меню Выпадающее меню работает.

Теперь взгляните на источник страницы. И внизу, что вы видите? Вы видите jquery 1.12.4, это то, что вы видите... не последнее, что равно 3 +.

Вы можете выполнить поиск "поддержки jquery drop для ie8", чтобы увидеть многочисленные анонсы.