【问题标题】:Bootstrap navbar not collapsing backBootstrap 导航栏不倒塌
【发布时间】:2020-06-23 16:21:06
【问题描述】:

我一直在为laravel project 使用引导程序 4.3.1,一切正常,但我使用的底部导航栏展开了一次,不想在移动视图中折叠回来。

只要我点击折叠按钮,代码就会变为折叠状态,然后立即恢复为展开状态。

这可能是什么问题?

这是导航栏的代码:

<nav class="navbar fixed-bottom navbar-expand-lg navbar-light">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
        <div class="navbar-nav m-auto">
            <a class="nav-item nav-link active" href="/">Home <span class="sr-only">(current)</span></a>
            <a class="nav-item nav-link" href="/posts">Blog</a>
            <a class="nav-item nav-link" href="/services">Service</a>
            <a class="nav-item nav-link" href="/about">About</a>
        </div>
        <ul class="nav navbar-nav navbar-right">
            <!-- Authentication Links -->
            @guest
            <li class="nav-item">
                <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
            </li>
            @if (Route::has('register'))
                <li class="nav-item">
                    <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
                </li>
            @endif
        @else
            <li><a href="/posts/create" class="nav-item nav-link">Create Post</a></li>
            <li><a href="/dashboard" class="nav-item nav-link">{{ Auth::user()->name }} <span class="caret"></span></a></li>
            <li>
                <a href="{{ route('logout') }}"
                    onclick="event.preventDefault();
                    document.getElementById('logout-form').submit();" class="nav-item nav-link">
                    {{ __('Logout') }}
                </a>
                <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                        @csrf
                </form>
            </li>
        @endguest
        </ul>
    </div>
</nav>

以下是上述代码在浏览器中的 HTML 输出:

<nav class="navbar fixed-bottom navbar-expand-lg navbar-light">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
        <div class="navbar-nav m-auto">
            <a class="nav-item nav-link active" href="/">Home <span class="sr-only">(current)</span></a>
            <a class="nav-item nav-link" href="/posts">Blog</a>
            <a class="nav-item nav-link" href="/services">Service</a>
            <a class="nav-item nav-link" href="/about">About</a>
        </div>
        <ul class="nav navbar-nav navbar-right">
            <!-- Authentication Links -->
                        <li class="nav-item">
                <a class="nav-link" href="http://laravel.build/login">Login</a>
            </li>
                            <li class="nav-item">
                    <a class="nav-link" href="http://laravel.build/register">Register</a>
                </li>
                            </ul>
    </div>
</nav>

我的头部标签内容:

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>

    <!-- Scripts -->
    <script src="{{ asset('js/app.js') }}" defer></script>

    <!-- Fonts -->
    <link rel="dns-prefetch" href="//fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">

    <!-- Google Material Icons -->
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

    <!-- Styles -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>

除了上面的代码,我在body标签的末尾还有bootstrap相关的脚本:

<!-- Bootstrap JS, Popper.js and jQuery -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

【问题讨论】:

  • 我将您的代码复制并粘贴到一个新项目中,它运行良好。你能展示你的 Html Head 元素吗?此外,您似乎有 3 个错误。转到控制台选项卡,看看它们是什么。
  • @PatrickMcvay 这些只是一些不相关的小错误。把它们修好了,但不出所料,问题仍然存在。在 OP 中添加了所需的代码。
  • 您似乎没有引入引导 css。尝试将此添加到您的头部元素 stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/…" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  • @PatrickMcvay,很抱歉这么晚才回复。我在我的主 sass 文件中导入了引导程序,因为我使用 npm 安装了它。此外,这似乎更像是一个 JS 问题。

标签: html twitter-bootstrap


【解决方案1】:

有时当您包含两次引导程序时会发生这种情况。检查引用 bootstrap.js 的 js 文件。或者将其全局包含在 webpack.mix.js documentation

【讨论】:

  • 这解决了我的问题,谢谢,我在反应中添加了两次引导程序,一个在 index.js 中,另一个在 index.html 中
  • 另一个 +1 我的 Rails 项目也是如此。我已经在 Webpacker 中声明了它,但也在 application.erb 中声明了它
猜你喜欢
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 2013-08-14
  • 2021-11-09
  • 1970-01-01
相关资源
最近更新 更多