it-roy-ru.com

Проблемы с отзывчивым navbar в Bootstrap 3

У меня не было проблем с отзывчивой панелью навигации в последней версии Bootstrap, но я не могу заставить работать версию 3. Кнопка переключения отображается правильно, и все исчезает, кроме бренда, но кнопка не реагирует на нажатия. ( http://getbootstrap.com/components/#navbar-responsive ) Любая помощь будет принята с благодарностью! Вот код на данный момент:

<!DOCTYPE html>
<html>
<html lang="en">

    <head>
    <title>Hello World</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="js/bootstrap.min.js"></script>
        <link href="css/bootstrap.css" rel="stylesheet" media="screen">
    </head>

    <body>
        <section>   
            <div class="navbar navbar-fixed-top">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a href= "#" class="navbar-brand">Brand Name</a>
                <div class="nav-collapse navbar-responsive-collapse collapse">
                    <ul class="nav navbar-nav pull-right">
                        <li class="active "><a href="#">Home</a></li>
                        <li><a href="#">Link 1</a></li>
                        <li><a href="#">Link 2</a></li>
                        <li><a href="#">Link 3</a></li>
                        <li><a href="#">Link 4</a></li>
                    </ul>   
                </div>  
            </div>
        </section>
25
user2655858

Я полагаю, что приведенный ниже код создаст эффект, который вы ищете. В частности, в BS3 нет класса " navbar-responseive-collapse " (см. Файл "bootstrap.css"). Начиная с выпуска 3, Twitter Bootstrap по умолчанию является отзывчивым, поэтому многие флаги кода для отзывчивости теперь встроены в платформу и больше не требуют явного вызова.

Вот версия BS3 выровненного по правому краю складного меню:

<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<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 href= "#" class="navbar-brand">Brand Name</a>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse">
    <ul class="nav navbar-nav pull-right">
        <li class="active "><a href="#">Home</a></li>
        <li><a href="#">Link 1</a></li>
        <li><a href="#">Link 2</a></li>
        <li><a href="#">Link 3</a></li>
        <li><a href="#">Link 4</a></li>
    </ul>   
</div>
</div>
12
PhilNicholas

Измените это: .navbar-responsive-collapse

на это: .navbar-collapse

Оригинальный постер решил свой вопрос. Размещение более краткой версии здесь, поскольку это помогло мне. Версия PhilNicholas не сработала.

3
KLEW

Twitter начальной загрузки использует подключаемый плагин Collapse jquery для переключения меню навигации на форм-фактор экрана мобильного устройства. Ваш вопрос относится к слегка старому выпуску начальной загрузки, но все еще остается актуальным - переключение может быть запущено для элемента путем установки: 

data-toggle="collapse" и data-target="#valid_css_selector_of_target_element"

Подвох в этом заключается в последнем - что касается работы плагина Collapse, не имеет значения, есть ли у вас предопределенный класс начальной загрузки .navbar-responsive-collapse, единственное, что здесь имеет значение, это то, что элемент существует в вашем html. Однако наличие класса начальной загрузки очень вероятно повлияет на его стиль. 

Документация по начальной загрузке на момент написания этой статьи (и, как я полагаю, уже давно) показывает на примере использование атрибута id для выбора целевого элемента; что я считаю немного лучше, потому что на одной странице может быть несколько элементов с одним и тем же классом, в то время как идентификаторы уникальны в HTML-документе. Итак, в вашем случае:

<div class="collapse navbar-collapse navbar-ex1-collapse"> будет выглядеть примерно как <div class="collapse navbar-collapse navbar-ex1-collapse" id="my_nav">, а кнопка переключения будет иметь атрибут data-target="#my_nav".

1
lost-and-found

Bootstrap 3 требует jquery.

-> Лучшая практика, чтобы поставить свои сценарии в конце тоже.

<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>

1
user3234300

Это сработало для меня: я изменил .navbar-ex1-collapse на .navbar-collapse.

0
baron5

Я использую Bootstrap 3.2.0. Что исправило эту проблему для меня, так это изменение версии jQuery, которую я использовал. По-видимому, jQuery 1.7.1 не совместим с последней загрузкой. После перехода на jQuery 2.0.2 все было хорошо:

<script type='text/javascript' src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
0
Alex W

убедитесь, что ссылка bootstrap.cs перед bootstrap-responsive.css

<link href="css/bootstrap.css" rel="stylesheet" />  
<link href="css/bootstrap-responsive.css" rel="stylesheet" />

https://stackoverflow.com/a/9626716/2127493

0
Azarsa