Bootstrap 4 hamburger не показывает элементы, но они меняются в инструментах разработки

#html #jquery #css #bootstrap-4

#HTML #jquery #css #bootstrap-4

Вопрос:

У меня возникли некоторые проблемы с меню bootstrap 4 hamburger — на вкладке инспектора в инструментах разработки похоже, что работает (элементы меняются), но на просмотре нет эффекта.

index.html:

 <!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <link rel="stylesheet" href="css/style.css">
  </head>
  <body>
    <nav class="navbar navbar-expand-fluid navbar-dark bg-dark">
      <a class="nav-text" href="#">Test</a>
      
      <button class="navbar-toggler" data-toggle="collapse" data-target="#collapseTarget">
        <span class="navbar-toggler-icon"></span>
      </button>

      <div class="collapse navbar-collapse" id="collapseTarget">
        <ul class="navbar-nav">
          <li class="nav-item">
            <a class="nav-link" href="#">Link1</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Link2</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#" >Link3</a>
          </li>
        </ul>
      </div>

    </nav>
    <div class="card">
      <div class="card-body">
        <h1 class="card-title" style="font-weight: 300; font-size: 72px; line-height: 84px;">Another Text</h1>
        <p class="card-text" style="width: 635px">text</a>
      </div>
    </div>

    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C OGpamoFVy38MVBnE IbbVYUew OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU 6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV rV" crossorigin="anonymous"></script>
  </body>
</html>
  

и style.css:

 nav {
  height: 56px;
}

.navbar-dark .navbar-nav .nav-link {
  color: white;
}

.nav-text {
  font-family: Roboto;
  font-style: normal;
  font-weight: normal;
  font-size: 20px; 
  line-height: 23px;
  color: #FFFFFF;
  padding-top: 2px;
  padding-right: 18px;
}

.nav-link {
  padding-top: 19px;
  padding-bottom: 18px;
  font-family: Roboto;
  font-style: normal;
  font-weight: normal;
  font-size: 16px;
  line-height: 19px;
}

.card-body {
  padding-top: 64px;
  padding-left: 49px;
  padding-bottom: 76px;
  background: #E9ECEF;
}

.card-text {
  font-family: Roboto;
  font-style: normal;
  font-weight: normal;
  font-size: 16px;
  line-height: 19px;
}
  

Я использовал некоторые другие примеры, но они также не работают. Проблема в моих браузерах? Я тестировал это в Chrome и Firefox.

Ответ №1:

Посмотрите этот фрагмент:

 .navbar-dark .navbar-nav .nav-link {
    color: white;
}

.nav-text {
    font-family: Roboto;
    font-style: normal;
    font-weight: normal;
    font-size: 20px; 
    line-height: 23px;
    color: #FFFFFF;
    padding-top: 2px;
    padding-right: 18px;
}

.nav-link {
    padding-top: 19px;
    padding-bottom: 18px;
    font-family: Roboto;
    font-style: normal;
    font-weight: normal;
    font-size: 16px;
    line-height: 19px;
}

.card-body {
    padding-top: 64px;
    padding-left: 49px;
    padding-bottom: 76px;
    background: #E9ECEF;
}

.card-text {
    font-family: Roboto;
    font-style: normal;
    font-weight: normal;
    font-size: 16px;
    line-height: 19px;
}  
 <!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <nav class="navbar navbar-expand-fluid navbar-dark bg-dark">
        <a class="nav-text" href="#">Test</a>

        <button class="navbar-toggler" data-toggle="collapse" data-target="#collapseTarget">
            <span class="navbar-toggler-icon"></span>
        </button>

        <div class="collapse navbar-collapse" id="collapseTarget">
            <ul class="navbar-nav">
                <li class="nav-item">
                    <a class="nav-link" href="#">Link1</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Link2</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#" >Link3</a>
                </li>
            </ul>
        </div>

    </nav>
    <div class="card">
        <div class="card-body">
            <h1 class="card-title" style="font-weight: 300; font-size: 72px; line-height: 84px;">Another Text</h1>
            <p class="card-text" style="width: 635px">text</a>
            </div>
        </div>

        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C OGpamoFVy38MVBnE IbbVYUew OrCXaRkfj" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU 6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV rV" crossorigin="anonymous"></script>
    </body>
    </html>  

Вам нужно удалить это из вашего стиля:

 nav {
    height: 56px;
}
  

Этот фрагмент делает вашу <nav> фиксированную высоту и отменяет настройку высоты, выполняемую классами эффекта свертывания

Ответ №2:

Ваша проблема в этом стиле:

 nav {
  height: 56px;
}
  

Другая возможность — изменить высоту с помощью min-height:

 nav {
   min-height: 56px;
}
  

Высота вашего nav обрабатывается непосредственно boostrap. Следовательно, если вы удалите эту часть из своего css, это сработает:

 nav {
    min-height: 56px;
}
.navbar-dark .navbar-nav .nav-link {
    color: white;
}
.nav-text {
    font-family: Roboto;
    font-style: normal;
    font-weight: normal;
    font-size: 20px;
    line-height: 23px;
    color: #FFFFFF;
    padding-top: 2px;
    padding-right: 18px;
}
.nav-link {
    padding-top: 19px;
    padding-bottom: 18px;
    font-family: Roboto;
    font-style: normal;
    font-weight: normal;
    font-size: 16px;
    line-height: 19px;
}
.card-body {
    padding-top: 64px;
    padding-left: 49px;
    padding-bottom: 76px;
    background: #E9ECEF;
}
.card-text {
    font-family: Roboto;
    font-style: normal;
    font-weight: normal;
    font-size: 16px;
    line-height: 19px;
}  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>

<nav class="navbar navbar-expand-fluid navbar-dark bg-dark">
    <a class="nav-text" href="#">Test</a>

    <button class="navbar-toggler" data-toggle="collapse" data-target="#collapseTarget">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="collapseTarget">
        <ul class="navbar-nav">
            <li class="nav-item">
                <a class="nav-link" href="#">Link1</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Link2</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#" >Link3</a>
            </li>
        </ul>
    </div>

</nav>
<div class="card">
    <div class="card-body">
        <h1 class="card-title" style="font-weight: 300; font-size: 72px; line-height: 84px;">Another Text</h1>
        <p class="card-text" style="width: 635px">text</a>
    </div>
</div>  

Комментарии:

1. Да, вся проблема была только в этом селекторе. Мне нужно установить высоту, и минимальная высота работает отлично, спасибо!