ブートストラップ3.0ナビゲーションバーの高さの減少


108

上部固定の動作で使用されるブートストラップ3.0ナビゲーションバーの高さを下げようとしています。ここで私はコードを使用しています。

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;}

結果

ここに画像の説明を入力してください

それが示す画面から、出力でナビゲーションバーは減少しましたが、高さは減少していません。元の高さはピンク色で表示されます。

上記のcssスクリプトは、ブートストラップ2でほぼ正常に機能します。*

高さを適切に下げる方法はありますか?


Bootstrap 3で<div class = "navbar-inner">が不要になった
Bartek S

navbar-innerは私のカスタムクラスです。ブートストラップ3.0とは関係ありません。
irfanmcsd 2013年

私のために働いた唯一の方法はこのリンクで説明されています:stackoverflow.com/questions/19576175/…それはたった2行のコードでnavbarの高さを減少させます
giovannim

回答:


124

数時間かけて、次のcssクラスを追加すると問題が解決しました。

Bootstrap 3.0で作業します。*

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

Bootstrap 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のmin-heightはデフォルトで50pxに設定されているため、高さを28pxに設定すると、50px min-heightによって上書きされます。 ..
patrick 2013年

3
ああ、私はこの投稿が(たくさん!)編集されたのを見て、実際に正しいコードを示しています また、ここの投稿で提案したmin-heightの設定は、なんらかの理由で反対票が出たことがわかります。正解、トピック、明確な回答に反対票を投じることは非常にイライラします...
パトリック

@patrickはあなたの意味がわかりませんが、私の問題は私の答えで解決されました。評判は、人々が私に賛成票か反対票を投じても問題ありません。
irfanmcsd

1
ソースを編集すると、これが簡単になります
Luke

おかしい、これらは私にはうまくいきませんでした。50pxの固定の高さを上書きする必要がありました。
ケビン

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; line-height:20px; }
jichi

1
bootstrap.css(v3.0.2)の行番号3884を確認してください。それはだ.navbar-nav > li > a {padding-top: 15px; padding-bottom: 15px;}、デフォルトで。
Ranveer 2014年

v3.0.2については不明です。しかし、bootstrap.cssのv3.0.3行4541では、次のようになります。.navbar-nav> li> a {padding-top:10px; padding-bottom:10px; line-height:20px; }
jichi

あなたは、私のヒーローです。
orokusaki 2015

40

次のように、.navbarのmin-heightセットをオーバーライドするだけです。

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

要素の高さをmin-heightよりも小さいものに変更しても、違いはありません...


navbarに表示されるように、私はすでにheightプロパティを使用していますが、効果はありません。
irfanmcsd 2013年

これは高さではなく、min-heightプロパティです... min-heightよりも小さい数値に高さを設定すると、min-heightはそれが小さくなるのを防ぎます...
patrick

7
なぜこれが反対票を獲得するのですか?これは、この投稿のセット問題の実用的な解決策です。モデレーターはこれを見てください、実際の答えをチェックせずに、彼が同意しないものを単に反対投票する反対投票者がいるようです。私の投稿が同じ回答を示してから2.5か月後にさらに投稿されたリンクが外部リンクにあり、2つの賛成票を獲得しました。人々が無作為の反対投票でSOを希釈するとき、私はそれを嫌います!
パトリック14

私はよく、人々がどのようにして反対票を獲得したのかを自問しましたが、通知はありますか?メタでこれを見つけることができませんでした
Iulian Onofrei 2014年

5
通知はありません...他の回答の方が優れていると思われる場合、人々は反対票を投じるようです...私にはわかりません... 。あなたが私に尋ねるなら、ちょっと不自由です...しかし、再び、このサイトは自我についてではなく、他人を助けることについてです...
patrick

27

より少ないソースを使用している場合は、variables.lessファイルにnavbarの高さの変数があるはずです。ソースを使用していない場合は、ブートストラップのサイトが提供するカスタマイズユーティリティを使用してソースをカスタマイズできます。そして、それをダウンロードしてプロジェクトに含めることができます。あなたが探している変数は:@navbar-height


1
しかし、元のナビゲーションバーの動作を変更したくありません。追加の上部ナビゲーションバーの高さを変更するだけです。
irfanmcsd 2013

2
それが最善の解決策だと思います。
Imtiaz 2013年

1
これは、サイトにナビゲーションが1つしかなく、その高さでなければならない場合に最適なソリューションです。複数のナビゲーションがある場合、.navbar-vertical-alignが複数の場所で使用され、@ navbar-heightへのハード参照があるため、少し難しくなります。
Carl Bussema、2014年

素晴らしい解決策。CDNの使用を計画していない限り
eagor

1
別の部分的でない部分でオーバーライドを使用している限り、これは最良のソリューションであり、問​​題なくブートストラップをアップグレードできます。
ケンプリンス

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; line-height:38px; }
cnmuc 2017年

3

LESS / SASSを使用してスタイルシートを生成し、そこにBootstrapをインポートしている場合、@ navbar-height変数をオーバーライドすると、navbarの高さを設定できることがわかります。これは、最初にvariables.lessファイルで定義されています。

ここに画像の説明を入力してください


3

James Pouloseに私の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要素のテキストを押し下げるようにパディングトップの値を変更しました。このようなBootstrap要素はほとんどオーバーライドでき、Boostrapの基本クラスを台無しにせずに変更を加える良い方法です。最後に行うことは、そこで変更を加え、Bootstrapを更新するとそれを失うことです!

最後に、さらに分離するために、CSSファイルを分割し、@ import宣言を使用して、サブファイルを1つのメイン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; }

最後の1つ(「navbar-brand」)は、「ブランド」名としてテキストを使用している場合にのみ実際に必要です。


良い答えこれは、Bootstrap 3の最新バージョンで私のために機能した唯一のものでした(注:テキストを押し下げたい場合は、.navbar-brandクラスと.navbar-navのpadding-top値を増やしてください> li>クラス
Tahir Khalid

0

私は同じ問題を抱えて、ブートストラップが提供する私のメニューバーの高さは実際に私はこのサイトからのorignalブートストラップをダウンロードすることにより、最終的にそれを取り除く一部の間違ったブートストラップを、ダウンロードした、あまりにも大きかった。.. http://getbootstrap.com/2.3 .2 / yii(netbeans)でブートストラップを使用したいhttps://www.youtube.com/watch?v=XH_qG8gphaw ... このチュートリアルに従って ください ...音声は表示されませんが、手順が遅く、簡単に理解して実装できますそれら。ありがとう


望ましい効果を得るために、コードの何を変更しましたか?回答のリンクを指す場合は、解決策を要約する必要があります。
ブライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.