【问题标题】:How to center content in a flexbox如何在弹性框中将内容居中
【发布时间】:2014-10-20 10:37:09
【问题描述】:

我在项目中遇到了一个问题,即内容未在弹性框中垂直对齐。我们有一个流畅的响应页面,需要通过 %'s 将 flexbox 中的所有项目居中。在下面的示例中,我们设置了一个固定的像素高度,以便您可以使用它。

我已经尝试了好几个小时了很多不同的方法..

body{
  margin:0px auto;

}
/* top bar navigation */
.topBoxNav {
  background:red;
  padding: 0;
  list-style: none;
  -ms-box-orient: horizontal;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -moz-flex;
  display: -webkit-flex;
  display: flex;
  width: 100%;
  height: 50px;
  color: white;
  font-weight: bold;
  font-family: 'League Gothic';
  font-size: 1.5em;
  text-align: center;
}

.topBoxNav li {
  box-sizing: border-box;
  border: 1px solid white;
  width: 100%;
  height: 100%;
}

.topBoxNav a {
  text-decoration: none;
  color: white;
}

HTML:

<nav class="" alt="top Nav">
  <ul class="topBoxNav">
    <li><a href="">Box1</a></li>
    <li><a href="">Box2</a></li>
    <li><a href="">Box3</a></li>
  </ul>     
</nav>

示例:

http://codepen.io/anon/pen/iwDdy

【问题讨论】:

    标签: html css alignment center flexbox


    【解决方案1】:

    首先,请意识到具有display: flex 属性的是您的ul,而不是您的li 元素,因此您有两种选择:

    1) 给你的li 元素display: flex 并添加align-items: centerjustify-content: center

    你会得到这样的东西:

    .topBoxNav li {
      box-sizing: border-box;
      border: 1px solid white;
      width: 100%;
      height: 100%;
    
      display: flex;
    
      align-items center
      -moz-align-items center
      -ms-flex-align center
      -webkit-align-items center
    
      justify-content center
      -moz-justify-content center
      -ms-flex-pack center
      -webkit-justify-content center
    }
    

    2) 给你的li 元素line-height 等于height,在本例中为50pxvertical-align: middle

    你会得到这样的东西:

    .topBoxNav li {
      box-sizing: border-box;
      border: 1px solid white;
      width: 100%;
      height: 100%;
      align-items: center;
      -webkit-align-items: center;
      vertical-align: middle;
      line-height: 50px;
    }
    

    这两种方法都行:)

    【讨论】:

    • 感谢您添加了技巧:display: flex;对齐项目:居中; -moz-align-items:居中; -ms-flex-align:居中; -webkit-align-items:居中;证明内容:中心; -moz-justify-content:中心; -ms-flex-pack:中心; -webkit-justify-content:中心;到您描述的 LI 元素,这也使事物保持响应,而不是具有指定像素的行高。
    猜你喜欢
    • 2015-03-31
    • 2020-02-06
    • 2013-06-02
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 2013-08-05
    相关资源
    最近更新 更多