반응 형 부트 스트랩 탐색 모음의 중앙에 컨텐츠


221

부트 스트랩 탐색 모음에서 컨텐츠를 중앙에 배치하는 데 문제가 있습니다. 부트 스트랩 3을 사용하고 있습니다. 많은 게시물을 읽었지만 사용 된 CSS 또는 메소드가 코드에서 작동하지 않습니다! 나는 정말로 좌절했다. 그래서 이것은 나의 마지막 옵션과 같다. 도움을 주시면 감사하겠습니다!

<!DOCTYPE html>
<html>
  <head>
    <title>Navigation</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="css/style.css" rel="stylesheet" media="screen">
  </head>
  <body>
    <div class="container">
      <nav class="navbar navbar-default" role="navigation">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
          <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>
        </div><!-- /.navbar-collapse -->
      </nav>
      <h1>Home</h1>

   </div>
     <!--JAVASCRIPT-->
   <script src="js/jquery-1.10.2.min.js"></script>
   <script src="js/bootstrap.min.js"></script>
 </body>
</html>

https://jsfiddle.net/amk07fb3/

답변:


457

나는 이것이 당신이 찾고있는 것이라고 생각합니다. float: left내부 네비게이션에서 중앙 네비게이션 을 제거하고 인라인 블록으로 만들어야합니다.

.navbar .navbar-nav {
  display: inline-block;
  float: none;
  vertical-align: top;
}

.navbar .navbar-collapse {
  text-align: center;
}

http://jsfiddle.net/bdd9U/2/

편집 : 탐색이 축소되지 않은 경우에만이 효과가 발생하도록하려면 적절한 미디어 쿼리에서 탐색을 둘러싸십시오.

@media (min-width: 768px) {
    .navbar .navbar-nav {
        display: inline-block;
        float: none;
        vertical-align: top;
    }

    .navbar .navbar-collapse {
        text-align: center;
    }
}

http://jsfiddle.net/bdd9U/3/


링크 아래에 여유 공간이 .navbar .navbar-collapse { line-height: 0px; }
— 부족한

3
원래 bootstrap.css를 사용하지 않는 것이 좋습니다. 대신 자신 만의 스타일을 만드십시오.
— 파이

필자의 경우 "flex"를 제거하고 "inline-block"으로 바꿔야 작동했습니다.
— theMayer

완벽한 솔루션입니다.
— Renato Lazaro

47

원래 게시물은 접힌 탐색 막대를 가운데에 배치하는 방법을 묻고있었습니다. 일반 탐색 모음에서 요소를 가운데에 배치하려면 다음을 시도하십시오.

.navbar-nav {
    float:none;
    margin:0 auto;
    display: block;
    text-align: center;
}

.navbar-nav > li {
    display: inline-block;
    float:none;
}

23

컨테이너 안에 navbar를 넣을 필요가없고 CSS 나 Bootstrap 재정의가 필요하지 않은 레이아웃에 대해이 작업을 수행하는 다른 방법이 있습니다.

container탐색 바 주위에 Bootstrap 클래스가 있는 div를 간단히 배치하십시오 . 탐색 바 내부에 링크가 중앙에 위치합니다 :

<nav class="navbar navbar-default">
  <!-- here's where you put the container tag -->
  <div class="container">

    <div class="navbar-header">
    <!-- header and collapsed icon here -->
    </div>

    <div class="collapse navbar-collapse">
      <ul class="nav navbar-nav">
      <!-- links here -->
      </ul>
    </div>
  </div> <!-- close the container tag -->
</nav> <!-- close the nav tag -->

그런 다음 본문 내용을 중앙 탐색 모음에 맞추려면 해당 본문 내용을 Bootstrap container태그 에 넣습니다 .

<div class="container">
  <! -- body content here -->
</div>

모든 사람이이 유형의 레이아웃을 사용할 수있는 것은 아닙니다 (일부 사람들은 navbar 자체를에 배치해야합니다 container). 그럼에도 불구하고 할 수 있다면 탐색 바 링크와 본문을 중앙에 배치하는 쉬운 방법입니다.

이 전체 페이지 JSFiddle에서 결과를 볼 수 있습니다. http://jsfiddle.net/bdd9U/231/embedded/result/

출처 : http://jsfiddle.net/bdd9U/229/


13
흠,이 솔루션은 더 이상 작동하지 않는 것 같습니다. 귀하의 예는 지금 정렬되어 있습니다.
— Bjarte Aune Olsen 2016

나를 위해 일하지 않았지만 솔루션의 단순성에 감사드립니다!
— Ben Casalino

12

이 코드는 나를 위해 일했다

.navbar .navbar-nav {
    display: inline-block;
    float: none;
}
.navbar .navbar-collapse {
    text-align: center;
}

8

부트 스트랩 4의 경우 :

그냥 사용

<ul class="navbar-nav mx-auto">

mx-auto가 작업을 수행합니다


8

2020 업데이트 ...

부트 스트랩 4

Navbar 컨텐츠를 센터링하는 것이 Bootstrap 4보다 쉬우 며 여기에 설명 된 많은 센터링 시나리오를 볼 수 있습니다 : https://stackoverflow.com/a/20362024/171456

부트 스트랩 3

아직 답변되지 않은 다른 시나리오 는 브랜드 및 탐색 모음 링크를 중심으로 하는 것 입니다. 해결책은 다음과 같습니다 ..

.navbar .navbar-header,
.navbar-collapse {
    float:none;
    display:inline-block;
    vertical-align: top;
}

@media (max-width: 768px) {
    .navbar-collapse  {
        display: block;
    }
}

http://codeply.com/go/1lrdvNH9GI

왼쪽, 가운데 또는 오른쪽으로 정렬 된 항목이있는 부트 스트랩 NavBar 참조


4

부트 스트랩 공식 사이트에서 (그리고 거의 Eric S. Bullington과 마찬가지로)

https://getbootstrap.com/components/#navbar-default

예제 navbar는 다음과 같습니다.

<nav class="navbar navbar-default">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
        ...etc

탐색을 중앙에 배치하기 위해 내가 한 일 :

<div class="container-fluid" id="nav_center">

CSS :

@media (min-width:768px) { /* don't break navbar on small screen */
    #nav_center {
        width: 700px /* need to found your width according to your entry*/
    }
}

class = "container"및 navbar-right 또는 left로 작업하고 물론 id를 클래스로 바꿀 수 있습니다. :디


3

이 모든 대답에는 부트 스트랩 위에 사용자 정의 CSS가 포함 된 것 같습니다. 내가 제공하는 답변은 부트 스트랩 만 사용하므로 사용자 정의를 제한하려는 사람들에게 사용되기를 바랍니다.

이것은 Bootstrap V3.3.7로 테스트되었습니다.

<footer class="navbar-default navbar-fixed-bottom">
    <div class="container-fluid">
        <div class="row">
            <div class="col-xs-offset-5 col-xs-2 text-center">
                <p>I am centered text<p>
            </div>
            <div class="col-xs-5"></div>
        </div>
    </div>
</footer>

2

이 작동합니다

 .navbar-nav {
    position: absolute;
    left: 50%;
    transform: translatex(-50%);
}

1

다음 HTML 사용

<link rel="stylesheet" href="app/components/directives/navBar/navBar.scss"/>
<nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
        <!-- Collect the nav links, forms, and other content for toggling -->
            <ul class="nav navbar-nav">
                <li><h5><a href="#/">Home</a></h5></li>
                <li>|</li>
                <li><h5><a href="#products">About</a></h5></li>
                <li>|</li>
                <li><h5><a href="#">Contacts</a></h5></li>
                <li>|</li>
                <li><h5><a href="#cart">Cart</a></h5></li>
            </ul>
    </div><!-- /.container-fluid -->
</nav>

그리고 CSS

.navbar-nav {
  width: 100%;
  text-align: center;
}
.navbar-nav > li {
  float: none;
  display: inline-block;
}
.navbar-default {
  background-color: white;
  border-color: white;
}
.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:hover, .navbar-default .navbar-nav>.active>a:focus{
  background-color:white;
}

필요에 따라 수정


1

BootStrap V4는 https://v4-alpha.getbootstrap.com/components/navs/#horizontal-alignment에 따라 Center (justify-content-center) 및 Right Alignment (justify-content-end)를 추가합니다.

<ul class="nav justify-content-center">
  <li class="nav-item">
    <a class="nav-link active" href="#">Active</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Link</a>
  </li>
  <li class="nav-item">
    <a class="nav-link disabled" href="#">Disabled</a>
  </li>
</ul>

이것이 효과가 있습니까? 나는 시도했지만 내 리튬의 전체이기 때문에이 차이도하지 않습니다 폭
— 놓으신

안녕하세요 Nuno 우리는 이것을 앱에서 사용하고 있습니다. 그래서 확실히 작동합니다. 앱의 상단에있는 가로 메뉴이며 여전히 사용 중입니다.
— Coder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.