首页 > 解决方案 > 在嵌套在 flex 行下的列中居中 div

问题描述

我正在尝试将 div 居中(水平和垂直)在class="centered-column"嵌套在 flex 行下的列(它是带有 的列)内。

我尝试应用此答案以及此 css-tricks 指南中给出的信息,但没有成功。

这是代码:

span {
  font-size: 20px;
}
.row {
  display: -webkit-flex;
  display: -ms-flexbox;
}
.col-md-8 {
	background-color: lightblue;
}
.centered-column {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container">
<div class="row">
    <div class="col-md-4 text-center">
      <div class="row">
        <div class="col-md-12">
            <span>Row number 1</span>
        </div>
      </div>
      <div class="row">
        <div class="col-md-12">
          <span>Row number 2</span>
        </div>
      </div>
    </div>
    <div class="col-md-8">
       <div class="centered-column">
          <span>Some text<span>
       </div>
    </div>
</div>

我应该怎么做才能让它工作(注意我必须使用 Bootstrap 3)?

标签: htmlcsstwitter-bootstraptwitter-bootstrap-3flexbox

解决方案


你需要给出.centered-column高度。否则,它有它的孩子的高度。孩子们垂直居中,但不在列中:

span {
  font-size: 20px;
}
.row {
  display: -webkit-flex;
  display: -ms-flexbox;
}
.col-md-8 {
	background-color: lightblue;
}
.centered-column {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container">
<div class="row">
    <div class="col-md-4 text-center">
      <div class="row">
        <div class="col-md-12">
            <span>Row number 1</span>
        </div>
      </div>
      <div class="row">
        <div class="col-md-12">
          <span>Row number 2</span>
        </div>
      </div>
    </div>
    <div class="col-md-8">
       <div class="centered-column">
          <span>Some text<span>
       </div>
    </div>
</div>


推荐阅读