css - Bootstrap 导航栏中的中心按钮(折叠外)

标签 css twitter-bootstrap

我想在导航栏中有一个按钮:

  • 与其余的导航栏元素内联(即它不会被推到下一行);
  • 位于折叠的导航栏部分之外;和
  • 在所有屏幕分辨率下始终位于页面中央(包括导航栏右侧折叠时)。

我在以下方面有特殊问题:

  • 使按钮居中;和
  • 某些导航栏元素不适用于较小的屏幕分辨率(当导航栏折叠时)。

下面是我的代码。

我尝试过的替代 CSS:

.navbar-button {
    position: absolute;
    left: 0;
    width: 100%;
    text-align: center;
    white-space: nowrap;
}

但这导致其他一些导航栏链接不起作用。我随后尝试使用 z-index,但它似乎没有用。

body {
  padding-top: 50px;
  padding-bottom: 20px;
}
.section {
  margin-bottom: 30cm;
}
.navbar-button {
  display: inline-block;
  text-align: center;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1">

  <title>Test</title>

  <!-- Bootstrap Core CSS -->
  <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

</head>

<body>
  <nav class="navbar navbar-default navbar-fixed-top">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
          <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="#brand">Brand</a>
        <div class="navbar-button">
          <button type="button" class="btn btn-primary navbar-btn">Button</button>
        </div>
      </div>

      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav navbar-right">
          <li class="text-center">
            <a href="#link1">Link-1</a>
          </li>
          <li class="text-center">
            <a href="#link2">Link-2</a>
          </li>
          <li class="text-center">
            <a href="#link3">Link-3</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <div class="container">
    <div class="row">
      <div class="section" id="brand">
        <h3>Top</h3>
      </div>
    </div>
    <div class="row">
      <div class="section" id="link1">
        <h3>Section-1</h3>
      </div>
    </div>
    <div class="row">
      <div class="section" id="link2">
        <h3>Section-2</h3>
      </div>
    </div>
    <div class="row">
      <div class="section" id="link3">
        <h3>Section-3</h3>
      </div>
    </div>
  </div>

</body>

</html>

最佳答案

您可以使用 position : absolute 但不要应用 100% 宽度,因为它很可能会覆盖您的链接/切换按钮。您还可以将 .navbar-btn 直接应用于外部 div 内的按钮。

示例 CSS:

.button-center {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

工作示例:

body {
  padding-top: 50px;
  padding-bottom: 20px;
}
.section {
  margin-bottom: 30cm;
}
.button-center {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">

    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <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="https://www.github.com" target="_blank">Brand</a>
      <button type="button" class="btn btn-primary navbar-btn button-center">Button</button>
    </div>

    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav navbar-right">
        <li class="text-center">
          <a href="https://www.github.com" target="_blank">Test Link</a>
        </li>
        <li class="text-center">
          <a href="#link2">Link-2</a>
        </li>
        <li class="text-center">
          <a href="#link3">Link-3</a>
        </li>
      </ul>
    </div>

  </div>
</nav>

<div class="container">
  <div class="row">
    <div class="section" id="brand">
      <h3>Top</h3>
    </div>
  </div>
  <div class="row">
    <div class="section" id="link1">
      <h3>Section-1</h3>
    </div>
  </div>
  <div class="row">
    <div class="section" id="link2">
      <h3>Section-2</h3>
    </div>
  </div>
  <div class="row">
    <div class="section" id="link3">
      <h3>Section-3</h3>
    </div>
  </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.6/js/bootstrap.min.js"></script>

关于css - Bootstrap 导航栏中的中心按钮(折叠外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38576144/

相关文章:

javascript - 使用 Bootstrap 模态 : bad line 的问题

javascript - 我看不到我的动画,而是看到显示和隐藏效果之类的东西?

javascript - 如何与母版页的相关CSS相关?

jquery - 为什么我的某些 CSS 属性会滚动,而其他属性会保持固定?

css - Firefox 的 twitter-bootstrap glyphicons 错误

javascript - jquery 不起作用的表格突出显示行

javascript - 页面未在 Chrome 中加载

html - 页面的菜单全宽

css - 子菜单消失在父菜单后面

html - Divshot 是否导入外部 Bootstrap 模板?