问题
Hi guys I'm using bootstrap 3 and trying to get my navbar to look something like this :
The problem I'm facing is trying to get the logo to float to the left and then the icons to float to the right, i have done research and seen other stack questions on this but for the life of me i can't fix it at all and i have no idea why,
.navbar-nav {
padding-left: 15px;
padding-right: 0;
}
.navbar-nav>li>a {
line-height: 80px;
padding: 0 15px !important;
}
.navbar-brand {
color: #cccccc !important;
font-size: 20px;
line-height: 20px;
font-weight: 500;
height: auto;
padding: 20px 15px;
}
.navbar-brand>img {
width: auto;
max-height: 28px;
margin-top: 5px;
}
.navbar-default {
background-color: white;
border: none !important;
border-bottom: 1px solid #e8e9eb !important;
}
.secondary-nav a {
color: #111111;
}
.secondary-nav a:hover {
color: #c39d6d;
}
.secondary-nav a.shopping-cart {
line-height: 14px;
position: relative;
width: 45px;
height: 20px;
}
.secondary-nav a.shopping-cart i {
margin-right: 15px;
}
.secondary-nav .cart-badge {
position: absolute;
top: -4px;
right: 6px;
color: white;
background: #ad8b60;
border-radius: 50px;
font-size: 9px;
font-weight: 400;
line-height: 10px;
padding: 2px 4px;
}
.space-right {
padding-right: 15px !important;
}
.navbar-nav {
float: right;
}
nav .secondary-nav {
float: right;
margin-top: 30px;
margin-left: 30px;
padding-right: 15px;
}
.nav-sec .navbar-nav {
float: none;
}
.nav-sec .navbar-nav>li {
float: none;
display: inline-block;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-default nav-sec navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
<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="index.html"><img src="Images/logo.png" alt="logo"></a>
</div><!-- / navbar-header -->
<div class="secondary-nav">
<a href="login-register.html" class="my-account space-right"><i class="fa fa-search"></i></a>
<a href="shopping-cart.html" class="shopping-cart"><i class="fa fa-shopping-cart"></i> <span class="cart-badge">2</span></a>
</div>
<div class="navbar-collapse text-center collapse" aria-expanded="false" style="height: 1px;">
<ul class="nav navbar-nav">
<li><a href="index.html"><span>HOME</span></a></li>
<li><a href="about.html"><span>ABOUT US</span></a></li>
<li><a href="about.html"><span>PRODUCTS</span></a></li>
<li><a href="about.html"><span>INSPIRATION</span></a></li>
<li><a href="contact.html"><span>CONTACT</span></a></li>
</ul>
</div><!--/ nav-collapse -->
</div><!-- / container -->
</nav>
Hopefully someone can save me :)
Thanks again
回答1:
You could try to use display: flex and justify-content: space-between on container so if your container has 3 child (logo, main menu, icon) automatically put first on the left, menu in the center and icon on the right.
I create this jsfiddle try to look it
https://jsfiddle.net/DTcHh/48838/
.navbar .container {
display: flex;
justify-content: space-between;
}
<nav class="navbar navbar-default nav-sec navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
<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="index.html"><img src="Images/logo.png" alt="logo"></a>
</div><!-- / navbar-header -->
<div class="navbar-collapse text-center collapse" aria-expanded="false" style="height: 1px;">
<ul class="nav navbar-nav">
<li><a href="index.html"><span>HOME</span></a></li>
<li><a href="about.html"><span>ABOUT US</span></a></li>
<li><a href="about.html"><span>PRODUCTS</span></a></li>
<li><a href="about.html"><span>INSPIRATION</span></a></li>
<li><a href="contact.html"><span>CONTACT</span></a></li>
</ul>
</div><!--/ nav-collapse -->
<div class="secondary-nav">
<a href="login-register.html" class="my-account space-right"><i class="fa fa-search"></i></a>
<a href="shopping-cart.html" class="shopping-cart"><i class="fa fa-shopping-cart"></i> <span class="cart-badge">2</span></a>
</div>
</div><!-- / container -->
</nav>
回答2:
Ok i figured a way to fix it somehow after hours :
HTML:
<nav class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<a class="navbar-brand" href="index.html"><img src="Images/logo.png" alt="logo"></a>
</ul>
<ul class="nav navbar-nav navbar-center">
<li><a href="index.html"><span>HOME</span></a></li>
<li><a href="about.html"><span>ABOUT US</span></a></li>
<li><a href="about.html"><span>PRODUCTS</span></a></li>
<li><a href="about.html"><span>INSPIRATION</span></a></li>
<li><a href="contact.html"><span>CONTACT</span></a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<div class="secondary-nav">
<a href="login-register.html" class="my-account space-right"><i class="fa fa-search"></i></a>
<a href="shopping-cart.html" class="shopping-cart"><i class="fa fa-shopping-cart"></i> <span class="cart-badge">2</span></a>
</div>
</ul>
</div>
</nav>
CSS:
@media (min-width: 768px) {
.navbar-nav.navbar-center {
position: absolute;
left: 50%;
transform: translatex(-50%);
}
}
nav .secondary-nav {
float: right;
margin-top: 30px;
margin-left: 30px;
padding-right: 15px;
}
回答3:
I made .container a flexbox and used margin auto settings for .navbar-header (logo) and .secondary-nav (icons).
View is only correct in full page mode.
.navbar .container {
display: flex;
align-items: center;
}
.navbar .container .navbar-header {
margin-right: auto;
}
.navbar .container .secondary-nav {
margin-left: auto;
}
.navbar-nav>li>a {
line-height: 80px;
padding: 0 15px !important;
}
.navbar-brand {
color: #cccccc !important;
font-size: 20px;
line-height: 20px;
font-weight: 500;
height: auto;
padding: 20px 15px;
}
.navbar-brand>img {
width: auto;
max-height: 28px;
margin-top: 5px;
}
.navbar-default {
background-color: white;
border: none;
border-bottom: 1px solid #e8e9eb;
}
.secondary-nav a {
color: #111111;
}
.secondary-nav a:hover {
color: #c39d6d;
}
.secondary-nav a.shopping-cart {
width: 45px;
height: 20px;
}
.secondary-nav a.shopping-cart i {
margin-right: 15px;
}
.secondary-nav .cart-badge {
color: white;
background: #ad8b60;
border-radius: 50px;
font-size: 9px;
font-weight: 400;
line-height: 10px;
padding: 2px 4px;
}
.space-right {
padding-right: 15px !important;
}
.nav-sec .navbar-nav>li {
display: inline-block;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<nav class="navbar navbar-default nav-sec navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
<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="index.html"><img src="Images/logo.png" alt="logo"></a>
</div>
<!-- / navbar-header -->
<div class="navbar-collapse text-center collapse" aria-expanded="false" style="height: 1px;">
<ul class="nav navbar-nav">
<li><a href="index.html"><span>HOME</span></a></li>
<li><a href="about.html"><span>ABOUT US</span></a></li>
<li><a href="about.html"><span>PRODUCTS</span></a></li>
<li><a href="about.html"><span>INSPIRATION</span></a></li>
<li><a href="contact.html"><span>CONTACT</span></a></li>
</ul>
</div>
<div class="secondary-nav">
<a href="login-register.html" class="my-account space-right"><i class="fa fa-search"></i></a>
<a href="shopping-cart.html" class="shopping-cart"><i class="fa fa-shopping-cart"></i> <span class="cart-badge">2</span></a>
</div>
<!--/ nav-collapse -->
</div>
<!-- / container -->
</nav>
回答4:
You can use following design originally given in bootstrap. There are lot of designing available in https://bootsnipp.com
<div class="business-logo-align col-md-10" >
<a href="#"><!--<img class="img-responsive " src="images/logo.jpg" alt="logo"/>--> LOGO
</a>
</div>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li class="col-md-6 col-xs-6 text-center"> <a href="login-register.html" class="my-account space-right"><i class="fa fa-search"></i></a></li>
<li class="col-md-6 col-xs-6 text-center"><a href="shopping-cart.html" class="shopping-cart"><i class="fa fa-shopping-cart"></i> <span class="cart-badge">2</span></a></li>
</ul>
<div class=" col-xs-9 col-sm-12 col-md-8 pd-t-10" >
<ul class="nav navbar-nav navbar-centerr">
<li><a href="#" class="busi-btn-active">Home</a></li>
<li><a href="#" class="busi-btn">ABOUT US</a></li>
<li><a href="#" class="busi-btn">PRODUCTS</a></li>
<li><a href="#" class="busi-btn">INSPIRATION</a></li>
<li><a href="#" class="busi-btn">CONTACT</a></li>
</ul>
</div>
</div>
</nav>
.busi-btn{ border-radius: 0px; color: #003333 !important; font-size: 18px; font-weight: 400; }
.busi-btn:hover{ border-radius: 0px; color: #ff3c2d !important; font-size: 18px; font-weight: 400; }
.busi-btn-active,.busi-btn-active:hover{ border-radius: 0px; color: #ff3c2d !important; font-size: 18px; font-weight: 400; }
.hom_nav_btn_red{ /* sign-up button */
border-radius: 0px;
background-color:#ff3333; /* red color */
border:0px !important;
font-size:18px;
font-weight: 400;
padding: 7px 30px;
margin: 0 -25px;
}
.hom_nav_btn{
border-radius: 0px;
color:#003333 !important; /* blue color */
font-size:18px;
font-weight: 400;
padding: 7px 30px;
}
.navbar-centerr{
float:none;
margin: 0 auto;
display: table;
table-layout: fixed;
}
.business-logo-align {
float: left;
padding: 5px 25px;
font-size: 18px;
line-height: 20px;
height: 50px;
}
来源:https://stackoverflow.com/questions/49051672/bootstrap-navbar-floating-left-and-right