【问题标题】:Change background of collapse nav with less用less改变折叠导航的背景
【发布时间】:2017-02-13 04:39:00
【问题描述】:

我正在用更少的自定义引导导航栏。我更改了 navbar-default 的背景颜色,然后我意识到 navbar-toggle 类(它在某个断点处折叠导航栏)根本没有背景。我尝试将相同的背景应用于导航栏折叠,当我单击切换按钮时,这可以工作,但是当页面没有触发产生此bad look 的断点时,此背景是可见的。我在这里需要的是在两个导航栏(折叠的一个和另一个)上具有相同的背景。这是我的文件,请注意sn-p上的css文件实际上是一个less文件。出于测试目的,我将其预编译为 css。实际的 css 文件编译为here。有什么建议吗?

@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>

【问题讨论】:

    标签: css twitter-bootstrap less


    【解决方案1】:

    只需添加一个媒体查询,以便背景仅应用于移动宽度:

    改变

    .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 &gt; li &gt; a,但如果需要,您可以忽略这些更改。 )

    请注意,由于使用了半透明背景颜色,您会在导航和下拉菜单重叠的地方看到深灰色条纹。如果背景不需要透明,您可以考虑更改为完全不透明的颜色(例如,白色背景下的 rgba(169, 169, 169, 0.7)#c2c2c2 相同)。

    【讨论】:

    • 嘿,亨利,谢谢你的回答。在发布您的答案之前,我设法找到了解决方案,但是您所做的细微调整确实很有帮助。如果你想看看这里是链接,我有另一个与这件事有关的问题。我用你的笔帮我解释了我的问题。我希望你不要介意。 stackoverflow.com/questions/40140633/…
    猜你喜欢
    • 2015-11-15
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多