更少地更改折叠导航的背景

时间:2016-10-04 21:25:57

标签: css twitter-bootstrap less

我正在使用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;
&#13;
&#13;

1 个答案:

答案 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相同。)