【问题标题】:bootstrap 4 change navbar height causing navbar items to not be vertically centeredbootstrap 4更改导航栏高度导致导航栏项目不垂直居中
【发布时间】:2016-08-02 13:43:48
【问题描述】:

我有一个像这样的 bootstrap 4 导航栏:

<nav class="navbar navbar-light bg-faded navbar-fixed-top">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <!-- Toggle Button -->
            <button type="button" class="navbar-toggler hidden-md-up" 
                        data-toggle="collapse" 
                        data-target="#nav-content"
                        aria-expanded="false">
                <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="#">THE VEGAN REPOSITORY</a>
        </div>
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-toggleable-md" id="nav-content">
            <ul class="nav navbar-nav pull-xs-right">
                <li class="nav-item">
                    <a class="nav-link" href="#home_page_footer">
                        <h5 class=" nav-item clickable white-text medium-text 
                                        right-text">
                                        ABOUT
                        </h5>
                    </a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#home_page_footer">
                        <h5 class=" nav-item clickable white-text medium-text 
                                        right-text">
                                        BLOG
                        </h5>
                    </a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="http://www.w3schools.com">
                        <h5 class=" nav-item clickable white-text medium-text 
                                        right-text">
                                        LOGIN
                        </h5>
                    </a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="http://www.w3schools.com">
                        <h5 id="    sign-in-button" class="nav-item clickable 
                                    medium-text right-text">
                            SIGN UP FREE
                        </h5>
                    </a>
                </li>
            </ul>
        </div>
        <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
</nav>

<nav class="navbar navbar-light bg-faded">

<!-- Toggle Button -->
<button class="navbar-toggler hidden-sm-up" type="button" data-toggle="collapse" data-target="#nav-content">
</button>



</nav>

我想更改导航栏的高度,但是当我这样做时,链接不再垂直居中。

70 像素

我已经尝试过行高和 flexbox 选项,例如

nav {
   background-color: $brand-red;
   height:70px;
   display: flex;
   align-items: center;
}

这样做:

我唯一用于整个导航栏的 CSS 是这样的:

nav {
  background-color: #fc4747;
  height: 70px;
  display: flex;
  align-items: center; }

如果导航栏是 70 像素高,我如何垂直居中导航栏项目?导航栏的默认高度要小一些,大约 50 像素。

【问题讨论】:

  • 看起来 Bootstrap 样式与您的 CSS 冲突。但是,由于无法重现问题,我们只能猜测。 stackoverflow.com/help/mcve

标签: html css twitter-bootstrap flexbox


【解决方案1】:

所以我想我会在这里解决一些问题,但首先是关于您的问题。如果您只想更改导航栏的高度而不是向导航栏添加特定高度,您可以向导航栏添加额外的填充以提供您想要的高度,然后您就不必在整个过程中更改一堆 CSS导航栏的其余部分。所以这样做应该让导航栏的高度为 70px。

.navbar{padding:1rem}

这是我在这篇文章中提到的所有内容Fiddle Demo

在这个小提琴演示中,我还添加了一些响应式样式,用于以折叠宽度堆叠导航栏链接。

下一步如果您要为导航设置背景颜色,则没有理由对导航使用 bg-faded 类,因为这只是为您提供导航的背景颜色,因此您可以从导航中删除该类.

然后我在您的导航链接课程中看到您有一个white-text 课程。如果您想要导航栏的白色文本,您可以使用navbar-dark 类,这将为导航栏提供更轻的文本,而不是使用navbar-light。只是想我会指出这一点。

Next 在 bootstrap 4 中没有 navbar-header 类,所以这不是必需的,除非您计划在这里自定义样式。 navbar-toggler 按钮在引导程序 4 中有所不同,没有 icon-bar 跨度,他们现在只使用 html 代码 &amp;#9776;

注意:解决我的一个巨大的烦恼,你的导航栏中有 h5 标签。不知道为什么会这样,但我看到人们经常这样做。 H 标签应该按从 h1 到 h6 的顺序使用,并且应该与您所在的页面直接相关,而不是与整个网站相关。如果您有充分的理由进行这种做法,那么一定要把它们留在那里,但我不确定为什么我看到人们一直这样做。对我来说这是一个不好的做法,只是想我会解决这个问题。

【讨论】:

  • 谢谢!!我实际上在 _custom.scss 中做了$enable-flex: true;,所以我需要在 css 上做一些工作以使其在考虑到这一点的情况下工作,而不是使用浮点数。然而,这不是问题的一部分,所以它当然是正确的。感谢您的额外提示。
猜你喜欢
  • 2017-08-04
  • 2012-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 2016-11-27
  • 1970-01-01
  • 2016-07-19
相关资源
最近更新 更多