问题描述

我想要一个高度为 150px 的标题,其中包含导航栏。导航栏应在标题中垂直居中。

HTML:

<header>
    <div class="navbar navbar-static-top">
        <div class="navbar-inner">
            <div class="container" style="background:yellow;">
                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                    <span class="icon-th-list"></span>
                </a>
                <a href="/"><img src="img/logo.png" class="logo" /></a>
                <nav class="nav-collapse collapse pull-right" style="line-height:150px; height:150px;">
                    <ul class="nav" style="display:inline-block;">
                        <li><a href="">Portfolio</a></li>
                        <li><a href="">Blog</a></li>
                        <li><a href="">Contact</a></li>
                    </ul>
                </nav>
            </div>
        </div>
    </div>
</header>

CSS:

header {
    width: 100%;
    line-height: 150px;
    color:red;
    height: 150px;

    .navbar-inner {
        border:0;
        border-radius: 0;
        background: blue;
        padding:0;
        margin:0;
        height: inherit;
    }
}

导航/菜单/垂直列表现在位于标题的右上方。如何让它垂直居中? bootstrap.css 未定制。

最佳解决思路

你的标记有点搞砸了。以下是您需要的样式和正确的 HTML

CSS:

.navbar-brand,
.navbar-nav li a {
    line-height: 150px;
    height: 150px;
    padding-top: 0;
}

HTML:

<nav class="navbar navbar-default">
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <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="#"><img src="img/logo.png" /></a>
    </div>

    <div class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
            <li><a href="">Portfolio</a></li>
            <li><a href="">Blog</a></li>
            <li><a href="">Contact</a></li>
        </ul>
    </div>
</nav>

或者查看小提琴:http://jsfiddle.net/TP5V8/1/

次佳解决思路

您还需要设置.min-height: 0px;,请参见下文:

.navbar-inner {
    min-height: 0px;
}

.navbar-brand,
.navbar-nav li a {
    line-height: 150px;
    height: 150px;
    padding-top: 0;
}

如果你设置了.min-height: 0px;,那么你可以选择任何你想要的高度!

祝你好运!

第三种解决思路

我相信你使用 Bootstrap 3. 如果是这样,请尝试这个代码,这里是 bootply

<header>
    <div class="navbar navbar-static-top navbar-default">
        <div class="navbar-header">
            <a class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="glyphicon glyphicon-th-list"></span>
            </a>
        </div>
        <div class="container" style="background:yellow;">
            <a href="/">
                <img src="img/logo.png" class="logo img-responsive">
            </a>

            <nav class="navbar-collapse collapse pull-right" style="line-height:150px; height:150px;">
                <ul class="nav navbar-nav" style="display:inline-block;">
                    <li><a href="">Portfolio</a></li>
                    <li><a href="">Blog</a></li>
                    <li><a href="">Contact</a></li>
                </ul>
            </nav>
        </div>
    </div>
</header>

第四种思路

对于 Bootstrap 4,现在有 spacing utilities,因此通过导航链接上的填充更容易地更改高度。这可以仅在特定断点 (即:py-md-3) 进行响应。例如,在较大的 (md) 屏幕上,该导航是 120 像素高,然后缩小到移动菜单的正常高度。不需要额外的 CSS

<nav class="navbar navbar-fixed-top navbar-inverse bg-primary navbar-toggleable-md py-md-3">
    <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNav" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <a class="navbar-brand" href="#">Brand</a>
    <div class="navbar-collapse collapse" id="navbarNav">
        <ul class="navbar-nav">
            <li class="nav-item py-md-3"><a href="#" class="nav-link">Home</a></li>
            <li class="nav-item py-md-3"><a href="#" class="nav-link">Link</a></li>
            <li class="nav-item py-md-3"><a href="#" class="nav-link">Link</a></li>
            <li class="nav-item py-md-3"><a href="#" class="nav-link">More</a></li>
            <li class="nav-item py-md-3"><a href="#" class="nav-link">Options</a></li>
        </ul>
    </div>
</nav>

Bootstrap 4 Navbar Height Demo

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛