#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. Да, вся проблема была только в этом селекторе. Мне нужно установить высоту, и минимальная высота работает отлично, спасибо!