【问题标题】:vertical align middle content with bootstrap 3使用引导程序 3 垂直对齐中间内容
【发布时间】:2014-09-28 04:50:56
【问题描述】:

我想用最新的引导 v3.2.0 在 div 块中设置垂直中间内容。

我已经阅读了vertical-align with bootstrap 3 的答案,但它在 div 块中使用了float:none;

但是,根据我们的布局,我不能在 div 块中使用float:none;

我有这个代码:

<div class="container">
  <div class="col-lg-4">....</div>
  <div class="col-lg-5">....</div>
  <div class="col-lg-3">....</div>
</div>

block 1的内容高度是动态的。我想根据block 1的高度设置block 2和3的垂直中间内容。

这是我们的布局目前的样子:

       Block 1           Block 2            Block 3
 ------------------ ------------------ ------------------
|  Content Height  |      Content     |      Content     |
|        is        |------------------ ------------------
|     Dynamic      | 
 ------------------ 

如果,我将使用float:none; 那么,这是我们的布局外观:

       Block 1           Block 2        
 ------------------ ------------------ 
|  Content Height  |                  |
|        is        |      Content     |
|     Dynamic      |                  |
 ------------------ ------------------ 
       Block 3
 ------------------
|      Content     |
 ------------------

这是我想要的样子:

       Block 1           Block 2            Block 3
 ------------------ ------------------ ------------------
|  Content Height  |                  |                  |
|        is        |      Content     |      Content     |
|     Dynamic      |                  |                  |
 ------------------ ------------------ ------------------

【问题讨论】:

  • 可以应用jquery的等高功能
  • 如果你愿意,我可以用 JQUery 给你解决方案
  • 找出stackoverflow.com/questions/15615552/…处的div的高度,并放置在“Block 2”和“Block 3”中,其他一些css将使垂直居中对齐。

标签: html css twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

我发现最好的方法是在容器中创建表格布局:

看看这个小提琴:http://jsfiddle.net/StephanWagner/Zn79G/9/embedded/result

<div class="container">
  <div class="table-container">
    <div class="col-table-cell col-lg-4">A<br>A<br>A<br>A<br>A<br>A<br>A</div>
    <div class="col-table-cell col-lg-5">B</div>
    <div class="col-table-cell col-lg-3">C</div>
  </div>
</div>
@media (min-width: 1200px) {

     .table-container {
        display: table;
        table-layout: fixed;
        width: 100%;
    }

    .table-container .col-table-cell {
        display: table-cell;
        vertical-align: middle;
        float: none;
    }
}

媒体查询确保内容在大型显示器中只是一个表格,否则它将像以前一样堆叠。

【讨论】:

  • 这正是你用这个实现的:jsfiddle.net/StephanWagner/Zn79G/1/embedded/result 为了使这项工作适用于 wur 布局,请将 -md- 类更改回 -lg- 并将 min-width: 992px 更改为 min-width: 1200px
  • 这是一个大布局的更新小提琴:jsfiddle.net/StephanWagner/Zn79G/4/embedded/result 确保将屏幕宽度移动到超过 1200 像素
  • 谢谢,但是,如果,我将使用此代码,那么它是行不通的。任何解决方案。 &lt;div class="col-md-4"&gt;A&lt;br&gt;A&lt;br&gt;A&lt;br&gt;A&lt;/div&gt; &lt;div class="col-md-5"&gt;B&lt;/div&gt; &lt;div class="col-md-3"&gt;C&lt;/div&gt;
  • 你能提供一个小提琴或一个链接,我可以看到为什么它在你的代码中不起作用? (记得添加&lt;div class="table-container"&gt;)。问题是设置为中间的垂直对齐仅在表格单元格中真正起作用,而表格单元格不能有浮点数。
【解决方案2】:

这对我有用:

.container > div {
    float: none;
    display: table-cell;
    vertical-align: middle;
}

bootply example

【讨论】:

  • ...但是根据我们的布局,我不能在 div 块中使用float:none;
  • 那我看不到其他方法了。为什么你不能在这个 div 上使用 float:none?
  • 很抱歉给您带来了困惑。那不是我的限制;这是OP的报价。在使用float:none 时,似乎 OP 知道该怎么做
  • @j08691 我更新了我们的问题。我希望,你现在可以清楚地理解了。
【解决方案3】:

.container {
  position: relative;
  height: 14rem;
  border: 1px solid;
}

.jumbotron {
  position: absolute;
  top: 50%;
  left:50%;
  transform: translate(-50%,-50%);
  border: 1px dashed deeppink;
}
<div class="container theme-showcase" role="main">
  <div class="jumbotron">
    I want to center this div with Bootstrap.
  </div>
</div>

Get from [Solved] Vertically center with Bootstrap

【讨论】:

  • 你应该做一些解释
【解决方案4】:

我认为这是 bootstrap 3 的解决方案:http://jsfiddle.net/raffi/52VtD/7348/

.col-lg-4 {
    display: table-cell;
    vertical-align: middle;
    float: none;
}

【讨论】:

  • 我已经更新了我们的问题。我希望,你现在可以清楚地理解了。
猜你喜欢
  • 1970-01-01
  • 2018-07-07
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
  • 2019-04-24
  • 1970-01-01
  • 2013-08-14
相关资源
最近更新 更多