【问题标题】:How to align-items flexbox如何对齐项目弹性框
【发布时间】:2017-03-09 22:38:29
【问题描述】:

我正在尝试垂直对齐白框,使它们位于图片的中间。我尝试使用 align-items: center;但是我需要为我不想的行类添加高度。

http://codepen.io/VK72m/pen/ZeLaNx

<div class="container">
 <div class="row">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>
 <div class="row">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>

 body {
  margin: 0;
  padding: 0;
  font-size: 100%;
}

.container {   
  align-items: center;    
  margin: 0;
  padding: 0;
  height: 19em;
  width: 20em;
  background-color: black;
  background: url("https://images.pexels.com/photos/340779
  /pexels-photo- 340779.jpeg?w=1260&h=750&auto=compress&cs=tinysrgb");
  background-position: -22em ;
}

.row {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.box {
  margin: 0;        
  padding: 0;
  height: 3em;
  width: 3em;
  margin: 0.9em;      
  background-color: white;
}

【问题讨论】:

    标签: html css flexbox


    【解决方案1】:

    将 flex 添加到容器中:

    .container {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    

    【讨论】:

      【解决方案2】:

      justify-content: center

      这里还有一个很棒的资源:@​​987654321@

      【讨论】:

        【解决方案3】:

        它定义了弹性项目如何在当前行上沿交叉轴布局的默认行为。您可以将其视为横轴(垂直于主轴)的justify-content 版本。

        align-items 属性接受 5 个不同的值:

        • flex-start:cross-start 项目边缘边缘放置在cross-start线上
        • flex-end:项目的cross-end margin边缘放置在cross-end线上
        • center: 项目在横轴上居中
        • baseline: 项目对齐,例如它们的基线对齐
        • stretch (default): 拉伸以填充容器(仍然尊重最小宽度/最大宽度)

        下图有助于了解弹性项目如何根据align-items 值进行布局。

        align-items: flex-start | flex-end | center | baseline | stretch
        
        .flex-container {
          align-items: flex-start;
        }
        

        http://codepen.io/HugoGiraudel/pen/2bfe2c024739bdd4098572f87d1bf585

        【讨论】:

          【解决方案4】:

          试试这个简单的Flexbox系统

          .flex-container {
            padding: 0;
            margin: 0;
            list-style: none;
            display: -webkit-box;
            display: -moz-box;
            display: -ms-flexbox;
            display: -webkit-flex;
            display: flex;
            -webkit-flex-flow: row wrap;
            justify-content: space-around;
          }
          
          .flex-item {
            background: orange;
            padding: 5px;
            width: 200px;
            height: 150px;
            margin-top: 10px;
            line-height: 150px;
            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>

          【讨论】:

            猜你喜欢
            • 2014-04-21
            • 2017-04-24
            • 2021-03-22
            • 2018-06-21
            • 2019-10-04
            • 1970-01-01
            • 2022-01-12
            • 1970-01-01
            相关资源
            最近更新 更多