我正在使用less来自定义一个bootstrap导航栏。我更改了navbar-default的背景颜色,然后我意识到navbar-toggle类(在某个断点处折叠导航栏)根本没有背景。我尝试将相同的背景应用于导航栏折叠,这在我单击切换按钮时有效,但是当页面不触发产生此bad look的断点时,此背景可见。我需要的是在两个导航条上都有相同的背景(折叠的一个)。以下是我的文件,请注意代码段上的css文件实际上是一个较少的文件。出于测试目的,我将其预编译为css。实际的css文件已编译为here。任何sugestions?
@import 'https://fonts.googleapis.com/css?family=Montserrat';
@navbar-height: 60px;
@navbar-default-color: rgba(169,169,169,0.7);
@navbar-default-link-color: #25b6ff;
@navbar-font: 'Montserrat', sans-serif;
@navbar-font-weight: 300;
@navbar-default-link-hover-bg: #fff;
.navbar-default{
height: @navbar-height;
font-family: @navbar-font;
background-color: @navbar-default-color;
.navbar-nav{
> li > a{
color: @navbar-default-link-color;
&:hover,
&:focus{
color: @navbar-default-link-hover-bg;
}
}
}
}
.navbar-default{
.navbar-collapse{
background-color: @navbar-default-color;
}
}

<!DOCTYPE html>
<html>
<head>
<title>Header</title>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="../css/navbar.css">
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-WDM-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">
<img alt="Brand" src="...">
</a>
</div>
<div class="collapse navbar-collapse" id="bs-WDM-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li><a href="./index.php">home</a></li>
<li><a href="./about.php">about</a></li>
<li><a href="./projects.php">projects</a></li>
<li><a href="./contact.php">contact</a></li>
</ul>
</div>
</div>
</nav>
</body>
</html>
&#13;
答案 0 :(得分:0)
只需添加媒体查询,以便仅在移动设备宽度处应用背景:
更改
.navbar-collapse {
background-color: @navbar-default-color;
}
到
@media (max-width: 768px) {
.navbar-collapse {
background-color: @navbar-default-color;
}
}
(768px is Bootstrap's mobile breakpoint)。
这里是一支工作笔,使用LESS:http://codepen.io/henry/pen/VKyrgE(我还做了一些小的调整,以使用具有较低特异性的清洁选择器,例如.navbar-nav a
而不是.navbar-default .navbar-nav > li > a
但是你如果需要,可以忽略这些更改。)
请注意,由于使用半透明背景颜色,导航和下拉列表会重叠,因此您会获得深灰色条纹。如果背景不需要透明,您可以考虑更改为完全不透明的颜色(例如,针对白色背景的rgba(169, 169, 169, 0.7)
与#c2c2c2
相同。)