降低bootstrap 3.0导航栏的高度

irf*_*csd 108 navbar twitter-bootstrap twitter-bootstrap-3

我试图减少bootstrap 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>
Run Code Online (Sandbox Code Playgroud)

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;}
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述

从屏幕显示,导航栏的输出减少但高度没有减少.原始高度以粉红色显示.

以上css脚本几乎在bootstrap 2中运行良好.*

有没有办法正确降低身高.

irf*_*csd 124

花了几个小时后,添加以下css类修复了我的问题.

使用Bootstrap 3.0.*

.tnav .navbar .container { height: 28px; }
Run Code Online (Sandbox Code Playgroud)

使用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;}
Run Code Online (Sandbox Code Playgroud)

更新 完整代码以使用屏幕截图自定义和降低导航栏的高度.

在此输入图像描述

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; }
Run Code Online (Sandbox Code Playgroud)

使用代码:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用...在这个页面上查看我的答案...默认情况下,.navbar的最小高度设置为50px,因此如果将高度设置为28px,它将被50px的最小高度覆盖. .. (4认同)
  • 啊,我看到这篇文章被编辑了(很多!),现在确实显示了正确的代码.我也看到我在帖子中建议的最小高度设置,由于某种原因得到了投票.在一个正确的,在主题上和明确的答案上得到落实的评论是非常令人沮丧的...... (3认同)

Ran*_*eer 43

工作方案:

Bootstrap 3.0默认在顶部和底部有一个15px的填充,所以我们只需要覆盖它!

例如:

.navbar-nav > li > a {padding-top:10px !important; padding-bottom:10px !important;}
.navbar {min-height:40px !important}
Run Code Online (Sandbox Code Playgroud)


pat*_*ick 40

只需覆盖.navbar中设置的最小高度,如下所示:

.navbar{
  min-height:20px; //* or whatever height you require
}
Run Code Online (Sandbox Code Playgroud)

将元素高度改为小于最小高度的东西不会产生影响......

  • 为什么这会得到一个downvote?这是本文中设定问题的有效解决方案.主持人可以看看这个吗,似乎有一个downvoter只是在没有检查实际答案的情况下只是投票给他不同意的东西.在我的帖子得到相同答案后2.5个月内进一步发布的链接是在外部链接上,并得到两个upvotes.当人们用随机的downvotes稀释SO时我讨厌它! (7认同)
  • 没有通知......如果他们认为另一个答案更好或者其他什么,人们会给予downvotes ...我不知道......在这种情况下,提出问题的人在他自己的答案中接受了我的答案并接受了答案.如果你问我,有点蹩脚......但话说回来,这个网站不是关于自我,而是关于帮助别人...... (5认同)

AJ *_*ani 27

如果您使用的是较少的源,则variables.less文件中的导航栏高度应该有一个变量.如果您没有使用源,则可以使用引导程序站点提供的自定义实用程序对其进行自定义.然后您可以下载它并将其包含在您的项目中.您要查找的变量是:@navbar-height

  • 我认为这是最好的解决方案. (2认同)

Hoà*_*gtt 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;}
Run Code Online (Sandbox Code Playgroud)

将navabr的高度更改为38px