부트 스트랩 3.0 navbar의 높이 낮추기


108

고정 상단 동작과 함께 사용되는 부트 스트랩 3.0 navbar 높이를 줄이려고합니다. 여기에 코드를 사용하고 있습니다.

HTML

<div class="tnav">
<div class="navbar navbar-fixed-top" role="banner">
    <div class="navbar-inner-sm">
  <div class="container">
    <div class="navbar-header">
      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-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>
    <nav class="collapse navbar-collapse" role="navigation">
      <ul class="nav navbar-nav pull-right">
        <li class="active">
          <a href="../getting-started">Getting started</a>
        </li>
        <li>
          <a href="../css">Ext01</a>
        </li>
        <li>
          <a href="../components">Language</a>
        </li>
        <li>
          <a href="../javascript">My Account</a>
        </li>
        <li>
          <a href="../customize">Sign Out</a>
        </li>
      </ul>
    </nav>
  </div>
    </div>
</div>

CSS

.tnav .navbar { background:#F06; height:30px; }
.navbar-inner-sm{background-color: #282828;padding: 1px 20px;background-repeat: repeat-x;-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);background-image: linear-gradient(top, #333333, #222222);}
.navbar-inner-sm .nav {position: relative;left: 0;display: block;float: left;margin: 0 10px 0 0;}
.navbar-inner-sm .nav.pull-right {float: right;}
.navbar-inner-sm .nav > li {display: block;float: left;}
.navbar-inner-sm .nav > li > a {float: none;padding: 4px 5px;line-height: 19px;color: #999999;text-decoration: none;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);}
.navbar-inner-sm .nav > li > a:hover {background-color: transparent;color: #ffffff;text-decoration: none;}
.navbar-inner-sm .nav .active > a,.navbar .nav .active > a:hover {color: #ffffff;text-decoration: none;background-color: #003753;}
.navbar-inner-sm .divider-vertical {height: 27px;width: 1px;margin: 0 9px;overflow: hidden;background-color: #282828;border-left: 1px solid #3f3f3f; border-right: 1px solid #161616;}
.navbar-inner-sm .nav.pull-right {margin-left: 10px;margin-right: 0;}

결과

여기에 이미지 설명 입력

화면에서 nav bar는 출력에서 ​​감소했지만 높이는 감소하지 않았습니다. 원래 높이는 분홍색으로 표시됩니다.

위의 CSS 스크립트는 부트 스트랩 2에서 거의 잘 작동합니다. *

높이를 적절하게 줄이는 방법이 있습니까?


부트 스트랩 3 <DIV 클래스 = "네비게이션 바-내부">에 대한 더 이상 필요가 없습니다
Bartek S

navbar-inner는 내 사용자 정의 클래스입니다. 부트 스트랩 3.0과 관련이 없습니다.
irfanmcsd

나를 위해 일한 유일한 방법은이 링크에 설명되어 있습니다 : stackoverflow.com/questions/19576175/... 그것은 코드의 두 라인 네비게이션 바의 높이 감소
giovannim

답변:


124

몇 시간을 보낸 후 다음 CSS 클래스를 추가하면 문제가 해결되었습니다.

부트 스트랩 3.0. * 작업

.tnav .navbar .container { height: 28px; }

부트 스트랩 3.3.4로 작업

.navbar-nav > li > a, .navbar-brand {
    padding-top:4px !important; 
    padding-bottom:0 !important;
    height: 28px;
}
.navbar {min-height:28px !important;}

전체 코드를 업데이트 하여 스크린 샷으로 navbar의 높이를 사용자 지정하고 줄입니다.

여기에 이미지 설명 입력

CSS :

/* navbar */
.navbar-primary .navbar { background:#9f58b5; border-bottom:none; }
.navbar-primary .navbar .nav > li > a {color: #501762;}
.navbar-primary .navbar .nav > li > a:hover {color: #fff; background-color: #8e49a3;}
.navbar-primary .navbar .nav .active > a,.navbar .nav .active > a:hover {color: #fff; background-color: #501762;}
.navbar-primary .navbar .nav li > a .caret, .tnav .navbar .nav li > a:hover .caret {border-top-color: #fff;border-bottom-color: #fff;}
.navbar-primary .navbar .nav > li.dropdown.open.active > a:hover {}
.navbar-primary .navbar .nav > li.dropdown.open > a {color: #fff;background-color: #9f58b5;border-color: #fff;}
.navbar-primary .navbar .nav > li.dropdown.open.active > a:hover .caret, .tnav .navbar .nav > li.dropdown.open > a .caret {border-top-color: #fff;}
.navbar-primary .navbar .navbar-brand {color:#fff;}
.navbar-primary .navbar .nav.pull-right {margin-left: 10px; margin-right: 0;}
.navbar-xs .navbar-primary .navbar { min-height:28px; height: 28px; }
.navbar-xs .navbar-primary .navbar .navbar-brand{ padding: 0px 12px;font-size: 16px;line-height: 28px; }
.navbar-xs .navbar-primary .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 28px; }
.navbar-sm .navbar-primary .navbar { min-height:40px; height: 40px; }
.navbar-sm .navbar-primary .navbar .navbar-brand{ padding: 0px 12px;font-size: 16px;line-height: 40px; }
.navbar-sm .navbar-primary .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 40px; }

사용 코드 :

<div class="navbar-xs">
   <div class="navbar-primary">
       <nav class="navbar navbar-static-top" 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="#bs-example-navbar-collapse-8">
                 <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</a>
          </div>
          <!-- Collect the nav links, forms, and other content for toggling -->
          <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-8">
              <ul class="nav navbar-nav">
                  <li class="active"><a href="#">Home</a></li>
                  <li><a href="#">Link</a></li>
                   <li><a href="#">Link</a></li>
              </ul>
          </div><!-- /.navbar-collapse -->
      </nav>
  </div>
</div>

4
이것은 작동하지 않습니다 ...이 페이지에서 내 대답을 확인하십시오 ... .navbar의 최소 높이는 기본적으로 50px로 설정되어 있으므로 높이를 28px로 설정하면 50px 최소 높이로 재정의됩니다. ..
patrick

3
아,이 게시물이 (많이!) 편집되었고 이제 실제로 올바른 코드를 보여줍니다. 나는 또한 여기 내 게시물에서 어떤 이유로 하향 투표를 받았는지 제안한 최소 높이 설정을 봅니다. 정확하고 주제에 관한 명확한 답변에 대해 반대 투표를받는 것은 매우 실망 스럽습니다.
patrick

@patrick은 당신이 의미하는 바를 모르지만 시간에 내 문제는 내 대답으로 해결되었습니다. 사람들이 나에게 투표를하면 평판은 의심의 여지가 없습니다.
irfanmcsd 2014 년

1
원본이 더 쉽게 한 것 편집
누가 복음

재미 있네요, 이것들은 저에게 효과가 없었습니다. 고정 높이 인 50px를 재정의해야했습니다.
Kevin

43

작업 솔루션 :

Bootstrap 3.0은 기본적으로 상단과 하단에 15px 패딩이 있으므로 덮어 쓰기 만하면됩니다!

예를 들면 :

.navbar-nav > li > a {padding-top:10px !important; padding-bottom:10px !important;}
.navbar {min-height:40px !important}

기본값은 bootstrap.css에서 10px입니까? .navbar-nav> li> a {padding-top : 10px; padding-bottom : 10px; 라인 높이 : 20px; }
jichi

1
bootstrap.css (v3.0.2)에서 라인 번호 3884를 확인하십시오. 그건 .navbar-nav > li > a {padding-top: 15px; padding-bottom: 15px;}기본적으로.
Ranveer

v3.0.2에 대해 잘 모르겠습니다. 그러나 bootstrap.css의 v3.0.3 라인 4541에서는 다음과 같습니다. .navbar-nav> li> a {padding-top : 10px; padding-bottom : 10px; 라인 높이 : 20px; }
jichi

당신은 나의 영웅입니다.
orokusaki

40

.navbar에 설정된 최소 높이를 다음과 같이 재정의하면됩니다.

.navbar{
  min-height:20px; //* or whatever height you require
}

요소 높이를 최소 높이보다 작은 것으로 변경해도 차이가 없습니다.


navbar에서 볼 수 있듯이 이미 높이 속성을 사용하지만 효과는 없습니다.
irfanmcsd 2013

높이가 아니라 min-height 속성입니다. 높이를 min-height보다 낮은 숫자로 설정하면 min-height가 작아지는 것을 방지합니다 ...
patrick

7
왜 이것이 반대표를 얻습니까 ?? 이 게시물의 설정 문제에 대한 작업 솔루션입니다. 중재자가 이것을 봐주시겠습니까? 실제 답변을 확인하지 않고 동의하지 않는 항목을 단순히 반대표를 던지는 반대 투표자가있는 것 같습니다. 내 게시물이 동일한 답변을 받고 외부 링크에 있으며 두 개의 찬성표를 얻은 후 2.5 개월 더 게시 된 링크가 있습니다. 나는 사람들이 무작위 비추천으로 이렇게 희석하는 것이 싫다!
패트릭

나는 종종 사람들이 이제 어떻게 반대표를 받았는지 스스로에게 물었습니다. 알림을 받습니까? 메타에이를 찾을 수 없습니다
이 울리 Onofrei에게

5
알림이 없습니다 ... 사람들이 다른 답변이 더 낫다고 생각하면 반대표를 던지는 것 같습니다 ... 모르겠습니다 ...이 경우 질문을하는 사람이 내 답변을 자신의 답변으로 받아 그 답변을 받아 들였습니다 .. . 절름발이의 종류 당신이 저를 요구하는 경우에 ...하지만 다시,이 사이트는 자아에 대한 것이 아니라,이 ... 다른 사람들을 돕는 관하여
패트릭

27

적은 소스를 사용하는 경우 variables.less파일에 navbar 높이에 대한 변수가 있어야 합니다. 소스를 사용하지 않는 경우 부트 스트랩 사이트에서 제공 하는 사용자 정의 유틸리티를 사용하여이를 사용자 정의 할 수 있습니다 . 그런 다음 다운로드하여 프로젝트에 포함 할 수 있습니다. 찾고있는 변수는 다음과 같습니다.@navbar-height


1
하지만 원래 탐색 모음 동작을 변경하고 싶지 않습니다. 추가 상단 탐색 모음의 높이를 변경합니다.
irfanmcsd 2013 년

2
최선의 해결책이라고 생각합니다.
Imtiaz

1
사이트에 탐색이 하나만 있고 그 높이 여야하는 경우 이것이 최상의 솔루션입니다. 탐색이 여러 개인 경우 .navbar-vertical-align이 여러 위치에서 사용되고 @ navbar-height에 대한 하드 참조가 있기 때문에 조금 더 어려워집니다.
Carl Bussema

좋은 해결책. CDN을 사용할 계획이없는 한
eagor 2014 년

1
별도의 Less 부분에서 재정의를 사용하는 한 이것이 최상의 솔루션이며 문제없이 부트 스트랩을 업그레이드 할 수 있습니다.
Ken Prince

9

이것은 내 경험입니다

 .navbar { min-height:38px;   }
 .navbar .navbar-brand{ padding: 0 12px;font-size: 16px;line-height: 38px;height: 38px; }
 .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 38px; }
 .navbar .navbar-toggle {  margin-top: 3px; margin-bottom: 0px; padding: 8px 9px; }
 .navbar .navbar-form { margin-top: 2px; margin-bottom: 0px }
 .navbar .navbar-collapse {border-color: #A40303;}

navabr의 높이를 38px로 변경


.navbar 형식의이 걸릴 치료를 추가 :.navbar .navbar-form { margin-top: 2px; margin-bottom: 0px }
steph643

다른 확장자 : .navbar .navbar-text {margin-top : 0px; margin-bottom : 0px; 라인 높이 : 38px; }
cnmuc

3

LESS / SASS로 스타일 시트를 생성하고 거기에서 Bootstrap을 가져 오는 경우 @ navbar-height 변수를 재정의하면 원래 variables.less 파일에 정의 된 navbar의 높이를 설정할 수 있음을 발견했습니다.

여기에 이미지 설명 입력


3

내 2 펜스를 추가하고 싶었고 James Poulose의 원래 답변에 감사드립니다. 그것은 내 특정 프로젝트 (최신 버전의 Bootstrap 3을 사용하는 MVC 5)에서 유일하게 작동했습니다.

이것은 대부분 초보자를 대상으로하며 명확성을 높이고 향후 편집을 쉽게하기 위해 프로젝트의 CSS 파일 맨 아래에 섹션을 추가하는 것이 좋습니다. 예를 들어 다음과 같이합니다.

/* Bootstrap overrides */

.some-class-here {
}

위의 James Poulose의 답변을 취하면 다음과 같습니다.

/* Bootstrap overrides */   
.navbar-nav > li > a { padding-top: 8px !important; padding-bottom: 5px !important; }
.navbar { min-height: 32px !important; }
.navbar-brand { padding-top: 8px; padding-bottom: 10px; padding-left: 10px; }

내 navbar 요소에서 텍스트를 아래로 내리기 위해 padding-top 값을 변경했습니다. 이와 같은 Bootstrap 요소를 거의 재정의 할 수 있으며 Boostrap 기본 클래스를 망가 뜨리지 않고 변경할 수있는 좋은 방법입니다. 왜냐하면 마지막으로하고 싶은 일은 거기에서 변경 한 다음 Bootstrap을 업데이트 할 때 손실하는 것입니다!

마지막으로 더 많은 분리를 위해 CSS 파일을 분할하고 @import 선언을 사용하여 하위 파일을 하나의 기본 CSS 파일로 가져 와서 쉽게 관리 할 수 ​​있습니다.

@import url('css/mysubcssfile.css');

참고 : 여러 파일을 가져 오는 경우 올바른 순서로로드되는지 확인해야합니다.

이것이 누군가를 돕기를 바랍니다.


2

기존 색상을 변경하지 않고 이렇게 적은 수의 스타일을 작성할 수 있다고 생각합니다. 다음은 나를 위해 일했습니다 (Bootstrap 3.2.0에서)

.navbar-nav > li > a { padding-top: 5px !important; padding-bottom: 5px !important; }
.navbar { min-height: 32px !important; }
.navbar-brand { padding-top: 5px; padding-bottom: 10px; padding-left: 10px; }

마지막 이름 ( 'navbar-brand')은 실제로 '브랜드'이름으로 텍스트가있는 경우에만 필요합니다.


좋은 대답은 이것이 최신 버전의 Bootstrap 3에서 저에게 도움이 된 유일한 것입니다 (참고 : 텍스트를 아래로 내리고 싶다면 .navbar-brand 클래스와 .navbar-nav의 padding-top 값을 늘리십시오> li> a 클래스
Tahir Khalid

0

같은 문제가 발생했습니다. 부트 스트랩에서 제공하는 메뉴 막대의 높이가 너무 컸습니다. 실제로 잘못된 부트 스트랩을 다운로드했습니다. 마침내이 사이트에서 원래 부트 스트랩을 다운로드하여 제거했습니다. http://getbootstrap.com/2.3 .2 / yii (netbeans)에서 부트 스트랩을 사용하려면이 자습서를 따르십시오. https://www.youtube.com/watch?v=XH_qG8gphaw ... 음성이 없지만 단계가 느려 쉽게 이해하고 구현할 수 있습니다. 그들. 감사


원하는 효과를 얻기 위해 코드에서 무엇을 변경 했습니까? 답변의 링크를 가리키면 솔루션을 요약해야합니다.
Brian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.