it-swarm.com.ru

Twitter начальной загрузки 3 RC2 - навигация в IE8 не работает

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

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

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


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

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

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

А вот и JSFiddle:

http://jsfiddle.net/DnwJN/


Вы увидите, что навигационная панель отлично работает в любом другом браузере. Даже 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
Vivendi

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

От 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>
14
Goran Jurić

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

<!--[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 включены для правильной работы.

8
Ronner

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

.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;
}
6
xeo

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: //, так как протокол file: // прервет выполнение response.js).

4
Artvader

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

1
Shana J

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

<!-- 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 для включения медиазапроса служба поддержки.

1
mascot6699

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

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

0
Vivek Vikranth

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

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

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

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

0
Mike O'Connor

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

0
James A Mohler

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

 <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]-->  
0
Venu immadi