引导区3中的垂直居中导航项目



所以,我已经将我的navbar设置为自定义高度80px,但现在这使得我的导航项目没有垂直居中。一段时间以来,我一直在寻找一个答案,让它们相对于父项垂直居中,所以我想我应该试试StackOverflow。

屏幕截图:http://screencast.com/t/zfUuX9SSQK

HTML:

<div class="container-fluid isModified">
    <div class="row">
        <nav class="navbar isModified" role="navigation">
            <div class="col-lg-8 col-lg-offset-2">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#nav-collapse">
                        <span class="sr-only">Toggle Navigation</span>
                        <span class="icon-bar isModified"></span>
                        <span class="icon-bar isModified"></span>
                        <span class="icon-bar isModified"></span>
                    </button>
                    <a href="index.php" class="navbar-brand">Tickets</a>
                </div>
                <div class="collapse navbar-collapse" id="nav-collapse">
                    <ul class="nav navbar-nav isModified">
                        <li><a href="#">Link 1</a></li>
                        <li><a href="#">Link 2</a></li>
                        <li><a href="#">Link 3</a></li>
                    </ul>
                </div>
            </div> <!-- end col-lg-12 -->
        </nav>
    </div> <!-- end row -->
</div> <!-- end container -->    

CSS:

.navbar.isModified {
height: 80px;
border-radius: 0;
background-color: #cccccc;
}
.icon-bar.isModified {
background-color: #fff;
}

垂直对齐可以通过多种方式完成,如堆栈溢出问题所示。然而,它们是相当情境化的,这意味着没有一种单一的方法可以应用于每一个案例。

对于您面临的问题,我建议使用line-height方法,因为您所有的导航内容都在一行上。只需移除有问题的元素上的任何垂直填充,并将它们设置为具有与所需容器高度(80px)相同的line-height

.navbar-nav li a {
    padding:0 15px;
    line-height:80px;    
}
.navbar-header a {
    padding:0 15px;
    line-height:80px;    
}

这里有一个Bootply演示。希望这能有所帮助!如果你有任何问题,请告诉我。

或者,您可以使用:

.navbar.isModified a {
    padding:0 15px;
    line-height:80px;    
}

尽管如果你计划在导航栏中以不同的方式设置其他链接的样式,你可能会发现这是一个过于宽泛的CSS选择器。

注意:如果你想让移动版菜单看起来不错,你可能需要使用媒体查询来用更多自己的样式覆盖这些样式

根据导航链接的行为方式,您可以通过多种方式实现这一点。你可能想把线的高度应用到你的链接上,所以在悬停时,它们仍然是导航条的全高768px以上(或者不,取决于)。然后,您可以使用另一个媒体并向navbar-header类添加填充,以获得更高的导航栏。不要使用固定的高度,因为在移动设备上,你的切换导航将没有背景色,因为导航栏的默认值为min-height: 50px

工作示例:

.navbar.isModified {
  background-color: #cccccc;
}
.navbar.isModified .icon-bar {
  background-color: #fff;
}
@media (min-width: 768px) {
  .navbar.isModified .navbar-brand {
    line-height: 50px;
  }
  .navbar.isModified .navbar-nav > li > a {
    line-height: 50px;
  }
}
@media (max-width: 767px) {
  .navbar.isModified .navbar-header {
    padding: 15px 0;
  }
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="container-fluid">
  <div class="row">
    <nav class="navbar navbar-static-top isModified" role="navigation">
      <div class="col-lg-8 col-lg-offset-2">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#nav-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 href="index.php" class="navbar-brand">Tickets</a>
        </div>
        <div class="collapse navbar-collapse" id="nav-collapse">
          <ul class="nav navbar-nav">
            <li><a href="#">Link 1</a>
            </li>
            <li><a href="#">Link 2</a>
            </li>
            <li><a href="#">Link 3</a>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

相关内容

  • 没有找到相关文章

最新更新