我尝试设计一个居中的徽标导航,但我有一些输出问题
.navbar {
background-color: #231f20;
min-height: auto;
position: relative;
top: 0px;
font-size: 13px;
width: auto;
border-bottom: none;
margin-bottom: 0px;
padding: 40px 0px;
}
.navbar-brand {
padding: 0 15px;
height: 96px;
}
@media (min-width: 768px) {
.navbar-nav {
position: relative;
right: -50%;
}
.navbar-nav > li {
position: relative;
left: -50%;
}
.navbar-nav > li a {
line-height: 126px;
vertical-align: middle;
padding: 0 24px;
}
}
@media (min-width: 992px) {
.navbar-nav > li a {
padding: 0 40px;
}
}
@media (min-width: 1200px) {
.navbar-nav > li a {
padding: 0 50px;
}
}
/////
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" 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 hidden-sm hidden-md hidden-lg" href="#"><img src="http://i.imgur.com/SC9LKtA.png" alt="Brand" width="180" /></a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="./about-us">Who We Are</a></li>
<li><a href="./menu">Our Food</a></li>
<li class="hidden-xs"><a href="#"><img src="http://i.imgur.com/SC9LKtA.png" alt="Brand" width="180" /></a></li>
<li><a href="./book">Book a Table</a></li>
<li><a href="./promotions">Promotions</a></li>
</ul>
</div>
</div>
</nav>
另外,在http://codepen.io/anon/pen/egqxjW
进行演示造成白色空间的问题是什么?
PS:有没有更好的方法来获得相同的结果?如何在源代码中仅包含一次徽标?
答案 0 :(得分:2)
right: -50%;
将ul
50%移到应有的位置右侧。它的宽度保持不变(容器的100%),向右移动50%,因此ul
的50%位于容器外部,从屏幕上流出。
我使用text-align: center
和display: inline-block
进行了一些更改,以达到您想要的相同结果。它们在CSS中用/ * change * /标记。
@import url( 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css' );
.navbar {
background-color: #231f20;
min-height: auto;
position: relative;
top: 0px;
font-size: 13px;
width: auto;
border-bottom: none;
margin-bottom: 0px;
padding: 40px 0px;
}
.navbar-brand {
padding: 0 15px;
height: 96px;
}
@media (min-width: 768px) {
ul.navbar-nav {
position: relative;
float: none;
/* change */
text-align: center;
/* change */
}
ul.navbar-nav>li {
position: relative;
display: inline-block;
/* change */
vertical-align: middle;
float: none;
}
ul.navbar-nav>li a {
line-height: 126px;
vertical-align: middle;
padding: 0 24px;
}
}
@media (min-width: 992px) {
.navbar-nav>li a {
padding: 0 40px;
}
}
@media (min-width: 1200px) {
.navbar-nav>li a {
padding: 0 50px;
}
}
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" 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 hidden-sm hidden-md hidden-lg" href="#"><img src="http://i.imgur.com/SC9LKtA.png" alt="Brand" width="180" /></a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="./about-us">Who We Are</a></li>
<li><a href="./menu">Our Food</a></li>
<li class="hidden-xs">
<a href="#"><img src="http://i.imgur.com/SC9LKtA.png" alt="Brand" width="180" /></a>
</li>
<li><a href="./book">Book a Table</a></li>
<li><a href="./promotions">Promotions</a></li>
</ul>
</div>
</div>
</nav>
答案 1 :(得分:0)
您的风格中有一条规则,即在导航栏上设置right: -50%
。遗憾的是,由于UL导航栏显示为一个块,因此您可以使用100%向右移动50%并在屏幕外清理的元素。
您应该尝试navbar-right
bootstrap类,而不是弄乱正确的相对定位。像这样:
<ul class="nav navbar-nav navbar-right">
bootstrap中的大多数布局都使用浮点数,所以你不能只使用相对定位,期望它的行为方式相同。
最后,您应该将其与官方文档响应导航栏示例进行比较:https://getbootstrap.com/components/#navbar
您可以在此处查看结果示例:http://codepen.io/anon/pen/NdQJRb