【问题标题】:Vertically align middle in Bootstrap column在 Bootstrap 列中垂直对齐中间
【发布时间】:2014-09-29 11:38:30
【问题描述】:

在 Bootstrap 轮播项目中,我有一行嵌套在 Bootstrap 列中的图像。它们的高度根据列的宽度而变化。在同一行中,还有轮播控件 LEFT 和 RIGHT 用于更改轮播的项目。

我需要让控件左 () 垂直居中于该行。这怎么可能完成? 我尝试删除行类并使用显示:表格和表格单元格,它们垂直对齐控件,但整个响应性都丢失了。

此处示例:http://testabc.borec.cz/

HTML(轮播):

<div id="monthly-tips" class="carousel slide showcase showcase-1 text-center"><!-- class of slide for animation -->
  <h1>Title</h1>
  <div class="carousel-inner">
    <div class="item container-fluid active">

        <div class="row" style="display: flex;
    align-items: center;">          
          <div class="col-xs-1 nopadding">
            <a class="carousel-control left" href="#monthly-tips" data-slide="prev">
              <span class="gi gi-chevron-left"></span>
            </a>
          </div>
          <div class="col-xs-10 col-sm-5 col-md-3">
            <img src="./img/books/syn-spravce-sirotcince.jpg" class="envelope js-book1" alt="" />
          </div>
          <div class="hidden-xs col-sm-5 col-md-4">
            <img src="./img/books/tanec-s-nepritelem.jpg" class="envelope js-book2" alt="" />
          </div>    
          <div class="hidden-xs hidden-sm col-md-3">
            <img src="./img/books/syn-spravce-sirotcince.jpg" class="envelope js-book1" alt="" />
          </div>      
          <div class="col-xs-1 nopadding">
            <a class="carousel-control right" href="#monthly-tips" data-slide="next">
              <span class="gi gi-chevron-right"></span>
            </a>
          </div>
        </div>

        <div class="row">          
          <div class="col-xs-1 nopadding"></div>
          <div class="col-xs-10 col-sm-5 col-md-3">
            <span class="bottom-shadow"></span>
          </div>
          <div class="hidden-xs col-sm-5 col-md-4">
            <span class="bottom-shadow"></span>
          </div>
          <div class="hidden-xs hidden-sm col-md-3">
            <span class="bottom-shadow"></span>
          </div>
          <div class="col-xs-1 nopadding"></div>
        </div>  

        <div class="row info-holder">

          <div class="col-xs-1 nopadding"></div>
          <div class="col-xs-10 col-sm-5 col-md-3">
            <p class="book-title">Syn správce sirotčince</p>
            <p class="book-author">Adam Johnson</p>
          </div>
          <div class="hidden-xs col-sm-5 col-md-4">
            <p class="book-title">Tanec s nepřítelem</p>
            <p class="book-author">Ruta Sepetysová</p>
          </div>
          <div class="hidden-xs hidden-sm col-md-3">
            <p class="book-title">Tanec s nepřítelem</p>
            <p class="book-author">Ruta Sepetysová</p>
          </div>
          <div class="col-xs-1 nopadding"></div>
        </div>        
    </div>

    <div class="item">
      <img src="http://placehold.it/1200x480" alt="" />
      <div class="carousel-caption">
        <p>Caption text here</p>
      </div>
    </div>
  </div>
</div><!-- carousel monthly-tips -->

【问题讨论】:

  • 此代码不会重复您的问题。 bootply.com/f8prSrZPo5
  • 我修改了代码,上一个只是说明使用的结构的一部分,其余的可以在页面示例中看到。

标签: css twitter-bootstrap carousel vertical-alignment


【解决方案1】:

您可以像这样在 .row 容器上添加新的 CSS 属性 align-items

CSS:

.row { // add a new class to your row and target your newest class
    display: flex;
    align-items: center; 
}

【讨论】:

  • 是的,它是一个新的属性 css3,但是如果你想要浏览器兼容性,你可以使用这样的东西:stackoverflow.com/questions/23616821/…
  • @JoffreyMaheo,我会避免使用绝对定位的解决方案,因为它会干扰 Bootstrap 列的响应性。绝对定位的项目被移出 DOM 流,并且 Bootstrap 列将无法适应这些项目的宽度。
  • 这破坏了我的 .row 的响应能力(至少在 Chrome 上)
猜你喜欢
  • 1970-01-01
  • 2016-03-02
  • 2020-03-11
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多