html - Bootstrap Navbar - 将元素对齐到中间

标签 html css twitter-bootstrap twitter-bootstrap-3

我正在尝试使用 Bootstrap 创建一个导航栏,左侧有“navbar-brand”,导航栏元素居中,右侧也有 2 个元素。首先,我尝试从头开始制作它,但我无法让它具有足够的响应能力。

然后,我在 Bootply 上找到了这个方法,这非常接近我想要的所有响应能力和导航栏折叠。但是,我想交换 navbar-brand 和 left 元素;品牌在左边,左边的元素在中间;正确的元素保持其位置。

[ Navbar-Brand            Home | About | Contact | Address            Right, Right] 

实现它的最好、最方便的方法是什么?

这是片段:

.navbar-brand {
    position: absolute;
    width: 100%;
    left: 0;
    text-align: center;
    margin:0 auto;
}
.navbar-toggle {
    z-index:3;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<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>    
    <a class="navbar-brand" href="#">Brand</a>
  </div>
  <div class="navbar-collapse collapse">
    <ul class="nav navbar-nav navbar-left">
        <li><a href="#">Left</a></li>
        <li><a href="#about">Left</a></li>
    </ul>
    <ul class="nav navbar-nav navbar-right">
      <li><a href="#about">Right</a></li>
      <li><a href="#contact">Right</a></li>
    </ul>
  </div>
</nav>

最佳答案

您可以在 .navbar-left 上使用 CSS Positioning 并使用 CSS transform 使其位于中心(将其限制在平板电脑上& 桌面,这样它就不会影响移动布局)。

看看下面的代码片段(使用全屏):

.navbar-brand {
  position: absolute;
  width: auto;
  left: 15px;
  text-align: center;
  margin:0 auto;
}

.navbar-toggle {
  z-index:3;
}

/* On Tabs & Desktops */
@media screen and (min-width: 768px) {
  .navbar-left {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<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>    
    <a class="navbar-brand" href="#">Brand</a>
  </div>
  <div class="navbar-collapse collapse">
    <ul class="nav navbar-nav navbar-left">
        <li><a href="#">Left</a></li>
        <li><a href="#about">Left</a></li>
    </ul>
    <ul class="nav navbar-nav navbar-right">
      <li><a href="#about">Right</a></li>
      <li><a href="#contact">Right</a></li>
    </ul>
  </div>
</nav>

希望这对您有所帮助!

关于html - Bootstrap Navbar - 将元素对齐到中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41125354/

相关文章:

html - 向现有 CSS 菜单添加更多级别

javascript - 按钮文本不显示在 safari 中,显示在 chrome 中

html - IE9 中的渐变 + 圆 Angular CSS 问题

javascript - 导入 NPM 安装的库以在 Ember.js 中使用

jquery - 如何向图像链接添加简单的反馈?

javascript - 如何在 PHP 中接收 Ajax urlencode

html - 无法使用 CSS 更改字体颜色?

html - 创建非折叠导航栏

javascript - 为什么这 3 个链接不起作用?

javascript - 检测文本区域外的点击