我创建了一个粘性导航栏,它应该是响应的。h1只是用于测试目的。我在css文件中使用flex时遇到问题。
我想使用flex将所有文本和表单垂直堆叠。昨天,我设法让它开始工作,但当我回到桌面时,我注意到所有的文本和表格都不再垂直堆叠。
我也尝试了一次,但没有切换按钮,仍然没有成功。即使使用flex似乎也没有效果。有人能告诉我我可能做错了什么吗?
注意: 我在移动上遇到了所有这些问题。您还会注意到,在css中,我将'text-center'作为注释,因为我试图在使用和不使用该属性的情况下对其进行测试
.navbar {
/*text-align: center;*/
padding-top: 20px;
padding-bottom: 20px;
}
.navbar-brand {
flex: 1;
}
#logo {
width: 30px;
height: 30px;
display: flex;
}
.container {
display: flex;
}
.search {
flex: 1;
}
.button {
flex: 1;
}
.container>li {
flex: 1;
}
@media all and (max-width: 600px) {
.container {
flex-wrap: wrap;
}
.container>li {
flex-basis: 50%;
}
}
@media all and (max-width: 400px) {
.container>li {
flex-basis: 100%;
}
.search {
order: 1;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous" />
<link rel="stylesheet" href="styles/responsive2.css" media="screen and (max-width: 900px)" />
<title>Navbar Test</title>
</head>
<body>
<div class="container">
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
<a class="navbar-brand" href="#"><img src="img/S-icon.png" width="30" height="30" id="logo" class="d-inline-block align-top" alt="">Giphy</a>
<!--<button class="navbar-toggler navbar-toggler-right custom-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar4">
<span class="navbar-toggler-icon"></span>
</button>-->
<div id="collapsingNavbar4">
<!--<div class="navbar-collapse collapse>-->
<ul class="navbar-nav">
<li class="nav-item active"><a class="nav-link" href="#">Link</a></li>
<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
<li class="search active">
<form class="form-inline">
<input class="form-control mr-sm-2" type="search" placeholder="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</li>
</ul>
</nav>
</div>
</div>
</div>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<h1>Hello!</h1>
<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.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
</body>
</html>
在_navbar.scss
内部,有一个属性(第21行(flex-wrap: wrap;
没有意义。这意味着导航栏只有在没有空间将其保持在一行中时才会换行。因为折叠的导航条在折叠时会更小,所以giphy会显示在它旁边。你可以用flex-direction: column;
来解决这个问题。当我测试这个时,我注意到导航栏中添加了一些奇怪的空格。您可以通过删除align-items: center
来解决此问题。