【问题标题】:Vertically centering navbar-collapse button垂直居中导航栏折叠按钮
【发布时间】:2017-07-17 09:05:23
【问题描述】:

我有一个带有徽标的导航栏,该徽标会随着用户向下滚动而调整大小。
这也会调整导航栏的大小,使其更短。

无论导航栏的高度如何,如何让折叠按钮 (#nav-btn) 垂直居中?

<nav class="navbar navbar-inverse navbar-toggleable-md fixed-top">

    <button id="nav-btn" class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarDiv"  aria-expanded="false" aria-label="Toggle navigation">
        <span id="hamburger-icon"class="navbar-toggler-icon"></span>
    </button>

    <div class="nav-container text-center">
        <a class="navbar-brand" href="#"><img id="navbar-logo" src="Images/logo.png" style="width:150px"></a>
    </div>
    <div class="collapse navbar-collapse" id="navbarDiv">                           
        <div>
            <ul class="navbar-nav mr-auto text-center">    
                <li class="nav-item">    
                    <a class="nav-link" href="#home" >Home <span class="sr-only">(current)</span></a>   
                </li>  
                <li class="nav-item">    
                    <a class="nav-link" href="#about-us" >About</a>   
                </li>   
                <li class="nav-item">  
                    <a class="nav-link" href="#pricing" >Pricing</a>   
                </li>                                   
            </ul>
        </div>
    </div>                          
</nav>

CSS

/***** NAVBAR *****/


.navbar {
    font-size: 25px;
    padding: 5px;
    padding-left: 8vw;
    background-color: rgba(31, 31, 31, 0.5)
}

.nav-link {
    font-weight: 500;
}


#nav-btn {
    border: 1px solid white;
}

【问题讨论】:

    标签: html css twitter-bootstrap


    【解决方案1】:

    一种方法是给#nav-btn 绝对位置。

    由于它位于 relative 定位元素内,因此它将相对于其父元素进行绝对定位。

    现在你可以给它top: calc(50% - &lt;half-of-it's-own-height&gt;); 它会将您的按钮定位在其父级的 50% 处,并降低其一半的高度以完全垂直对齐到中心。

    高度为 20px 的示例:

    CSS
    
    #nav-btn {
      position: absolute;
      height: 20px;
      top: calc(50% - 10px);
    }
    

    【讨论】:

    • 这是完美的,但是,当导航栏展开以显示折叠的内容时,按钮位置会更改为中间(如预期的那样)。我怎样才能防止这种情况?谢谢
    • 我发现很难让你的代码在 codepen 中运行良好,我想我错过了一些引导 CSS 或其他东西,即使我已经添加了它。能否请您添加所有 CSS 和/或指定您使用的 Bootstrap 版本?
    • 我正在使用引导程序 4
    • 由于某种原因我无法扩展导航栏,您能提供一个工作示例吗? (codepen/jsfiddle)
    • 中间是水平方向吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多