在弹性项

时间:2016-06-26 01:27:58

标签: html css css3 flexbox centering

我试图跟随flexbox示例,我的行高不适用于此问题。

文本应该是垂直居中的,但事实并非如此。它只保持在水平居中的顶部。

在代码片段中它似乎工作得很好但只是为了证明这是行为奇怪我会给出我所看到的图片。

我在Chrome和IE中测试了这个,但它没有垂直居中。

我确实更改了代码段中的尺寸,但我认为不会这样做。

enter image description here

.flex-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
  padding: 0;
  margin: 0;
  list-style: none;
  display: -webkit-box;
  display: moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  -webkit-flex-flow: row wrap;
}
.flex-item {
  background: tomato;
  padding: 5px;
  width: 50px;
  height: 50px;
  margin-top: 10px line-height: 50px;
  color: white;
  font-weight: bold;
  font-size: 3em;
  text-align: center;
}
<ul class="flex-container">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
  <li class="flex-item">6</li>
</ul>

2 个答案:

答案 0 :(得分:2)

要使每个弹性项目中的文本垂直和水平居中,请对您的代码进行此调整:

&#13;
&#13;
.flex-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
  padding: 0;
  margin: 0;
  list-style: none;
  display: -webkit-box;
  display: moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  -webkit-flex-flow: row wrap;
}
.flex-item {
  display: flex;                /* create nested flex container */
  justify-content: center;      /* center text horizontally */
  align-items: center;          /* center text vertically */
  background: tomato;
  padding: 5px;
  width: 50px;
  height: 50px;
  color: white;
  font-weight: bold;
  font-size: 3em;
}
&#13;
<ul class="flex-container">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
  <li class="flex-item">6</li>
</ul>
&#13;
&#13;
&#13;

有关详细信息,请参阅:Flexbox: center horizontally and vertically

答案 1 :(得分:0)

你错过了一个&#34;;&#34;在flex-item中的margin-top之后,这使得行高无效