Css 使div垂直居中

Css 使div垂直居中,css,twitter-bootstrap,twitter-bootstrap-3,vertical-alignment,Css,Twitter Bootstrap,Twitter Bootstrap 3,Vertical Alignment,我试图在引导程序中垂直对齐一个div,但在投票否决访问JSFIDLE link之前,它不起作用 <div style="display: table-cell; height: 50px; vertical-align: middle;"> <button type="button" class="btn btn-default navbtn"> <span class="

我试图在引导程序中垂直对齐一个div,但在投票否决访问JSFIDLE link之前,它不起作用

<div style="display: table-cell; height: 50px; vertical-align: middle;">
    <button type="button" class="btn btn-default navbtn">
        <span class="glyphicon glyphicon-leaf"></span>
    </button>
    <button type="button" class="btn btn-default navbtn" >
        <span class="glyphicon glyphicon-cog"></span>
    </button>
    <div id="navbar-search">
        <button type="button" class="btn btn-default navbar-search-btn" >
            <span class="fa fa-search"></span>
        </button>
        <input type="search" class="navsearch" />
    </div>
</div>
当我移除导航栏时,搜索div按钮就可以了。

JSFiddle:

注意:搜索容器有显示:内联块;并使其粘在顶部,我无法将其移除。

您需要将.navbar btn添加到按钮以使其垂直居中。有关更多详细信息,请参阅

从语义上讲,如果它是nav,它应该在nav HTML5元素中。无论如何,您的列太宽了,并且正在向下推图标列,这些列占据了100%的宽度,因此没有空间放置任何其他内容

请参阅使用基本引导

  <nav class="navbar navbar-default" role="navigation">
  <div class="container-fluid">
    <div class="row"> 
        <div class="col-sm-6">
            <div class="row">
            <div class="col-sm-5">1</div>
            <div class="col-sm-2">2</div>
            <div class="col-sm-5">3</div>
            </div>
        </div>
        <div class="col-sm-6 navbar-right">
            <div class="row">
      <div class="col-sm-8">
          <form class="navbar-form navbar-right" role="search">
              <div class="input-group">
                  <input type="text" class="form-control" placeholder="Search" name="q">
                      <div class="input-group-btn">
                          <button class="btn btn-default" type="submit">
                              <i class="glyphicon glyphicon-search">
                              </i>
                          </button>
                      </div>
                  </div>
              </form><!--/form-->
          </div><!--/form column-->
          <div class="col-sm-4">
              <button type="button" class="btn btn-default navbtn navbar-btn">
                  <span class="glyphicon glyphicon-leaf"></span>
              </button> 
              <button type="button" class="btn btn-default navbtn  navbar-btn" >
                  <span class="glyphicon glyphicon-cog"></span>
              </button>
            </div><!--/buttons column-->
            </div><!--/row column-->
        </div><!--/right column-->
      </div><!--/row-->
   </div><!--/container-->
</nav> <!--/nav-->
html


小提琴:

复制许多小提琴中的一个;请参见此处的答案:。在这种情况下,您的div导航栏搜索可能是display:block…因此它不能与按钮元素在一行中。不,这是不同的。搜索容器div具有显示:inline block;。我认为您没有检查JSFIDLE链接!我更新了代码并添加了一个fiddle链接。您可以根据需要调整父列。实际上,您使用的是默认的导航栏控件,我假装不使用它。
<header class="navbar">
        <div class="container-fluid expanded-panel">
            <div class="row" dir="rtl">
                <div class="col-sm-5">
                    3

                </div>
                <div class="col-sm-2">
                    2
                </div>
                <div class="col-sm-5">
                    <div style="display: table;">

                        <button type="button" class="btn btn-default navbtn">
                            <span class="glyphicon glyphicon-leaf"></span>
                        </button>
                        <button type="button" class="btn btn-default navbtn" >
                            <span class="glyphicon glyphicon-cog"></span>
                        </button>
                        <div id="navbar-search" style="display: table-cell;">
                            <button type="button" class="btn btn-default navbar-search-btn" >
                                <span class="fa fa-search"></span>
                            </button>
                            <input type="search" class="navsearch" />
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </header>
.navbar{
    background-color:#fff;
    border-bottom:#eee solid 1px;
}
.navbtn {
    font-size:large;
    margin-left: 5px;
}
.navsearch{
    text-align: right;
    -webkit-border-radius: 15px 0 0 15px;
    border-radius: 15px 0 0 15px;
    outline: none;
    background: #eee;
    cursor: inherit;
    display:inline-block;
    border:none;
    padding:5px;
    height:35px;
}
#navbar-search{
    display:inline-block;
    float:none;
    margin-top:10px;
}
.navbar-search-btn{
    -webkit-border-radius: 0 15px 15px 0;
    border-radius: 0 15px 15px 0;
    display:inline;
    float:right;
    border:none;
    background: #eee;
    height:35px;

}