bootstrap 4更改导航栏高度,导致导航栏项目未垂直居中

Ben*_*ins 1 html css flexbox twitter-bootstrap

我有一个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>
Run Code Online (Sandbox Code Playgroud)

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

70像素

在此处输入图片说明

我试过了line-height和flexbox选项,例如

nav {
   background-color: $brand-red;
   height:70px;
   display: flex;
   align-items: center;
}
Run Code Online (Sandbox Code Playgroud)

这样做:

在此处输入图片说明

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

nav {
  background-color: #fc4747;
  height: 70px;
  display: flex;
  align-items: center; }
Run Code Online (Sandbox Code Playgroud)

如果导航栏高70像素,如何垂直居中导航栏项目?导航栏的默认高度略小,约为50像素。

Ste*_*e K 5

所以我想在这里我要解决几件事,但首先要谈您的问题。如果您只想更改导航栏的高度,而不是在导航栏中添加特定的高度,则可以在导航栏上添加额外的填充,以提供所需的高度,这样就不必在整个导航栏中更改一堆CSS导航栏的其余部分。因此,这样做应该使导航栏的高度为70px。

.navbar{padding:1rem}
Run Code Online (Sandbox Code Playgroud)

这是我在本文中的所有小提琴

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

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

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

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

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