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


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.