2013-08-17 2 views
14

Я использую 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> 

ответ

14

Надеется, что это помогает ...

От 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> 
+3

Это не сработало для меня – boje

0

эй использовать Modernizr JS, потому что i8 и более ранние версии does'nt поддержка бар, потому что она нас html5.For что использование Модернизатор JS. :)

modernizer

+0

Это не имеет никакого отношения к тому, что он использует 'nav'. Если браузер не поддерживает элемент, например 'nav' в этом случае, тогда он просто рассматривается как' div'. Вы также можете увидеть, что из этого примера, где navbar создается только из divs: http://getbootstrap.com/examples/starter-template/. Я думаю, что это ошибка в одном из медиа-запросов. – Vivendi

+0

yep изменить классы visiblilty для ie (в медиа-запросах) –

1

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

<!-- 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

после добавления 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; 
} 
+0

работал как шарм, но вам не нужны 'background-color' и' border-color' :) – balexandre

+0

Спасибо, это тоже работал на меня! –

+0

Спасибо, ты рок! – jacksun101

0

главным образом проверить META HTTP-эквив тег, если он не включает в свой файл, добавьте этот

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

bootstrap3 workes отлично с 8, т.е. только вы должны убедиться, чтобы добавить respond.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]--> 
8

Кроме того, принять к сведению тот факт, что вы должны включить этот код:

<!--[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 был включен для того, чтобы работать должным образом ,

+4

Я сходил с ума! ПОСЛЕ всех css! спасибо .. –

0

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

1

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

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).

+0

Сейчас 2017 год. Ваш совет об использовании старого jquery - единственное, что сработало для меня, с Bootstrap 3.3.7. –

0

Сейчас, в 2017 году, я только что узнал что-то, что позволяет предположить, что различные ответы выше --- с участием html5shiv, respond.js и JQuery < 2.0 --- это всех необходимы.

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

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

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

Смежные вопросы