使用flexbox垂直居中的项目 - 对齐项目:中心不起作用?

时间:2016-10-12 14:16:23

标签: html css css3 flexbox

我使用了这个thread中的样式来使进度条填充div中的空白区域(只有其他项目是按钮)。

现在问题是"workbench.action.tasks.test"没有垂直居中进度条。我也尝试在孩子身上使用[ { "key": "f6", "command": "workbench.action.tasks.build" }, { "key": "f7", "command": "workbench.action.tasks.test" } } ,但没效果。

如果您没有打开链接

,请输入代码
align-items: center

标记:

align-content: center

有人可以告诉我我做错了什么吗?提前致谢

它的外观如下:

This is how it looks

3 个答案:

答案 0 :(得分:1)

我猜你可以做以下事情来做对:

  1. margin元素有一个.progress - 首先你可以取消它:

    .wrapper > .left > .progress {
      margin: 0;
    }
    
  2. wrapper

  3. 提供100%的高度
  4. 我还为包装容器删除了height: 10vh以完成任务。

  5. 请参阅下面的revised fiddle here和摘要:

    /* Latest compiled and minified CSS included as External Resource*/
    
    /* Optional theme */
    
    @import url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css');
     body {
      margin: 10px;
    }
    .wrapper {
      display: flex;
      align-items: center;
      width: 100%;
      background: #ccc;
      height: 100%;
    }
    .wrapper > .left {
      background: #fcc;
      flex: 1;
    }
    .wrapper > .right {
      background: #ccf;
    }
    .wrapper > .left > .progress {
      margin: 0;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
    
    <div class="container">
      <div class="row">
        <div class="col-lg-6 col-lg-offset-3 col-md-6 col-md-offset-3 col-s-6 col-s-offset-3" style="background:purple; position:relative; border-radius:10px;">
          <div class="wrapper">
            <div class="left">
              <div class="progress">
                <div class="progress-bar" role="progressbar" aria-valuenow="35" aria-valuemin="0" aria-valuemax="100" style="width:35%">
                </div>
              </div>
            </div>
            <div class="right">
              <button type="button" aside-menu-toggle="menu-1" class="btn btn-sm btn-default">Меню</button>
            </div>
          </div>
        </div>
      </div>
    </div>

    让我知道您对此的反馈。谢谢!

答案 1 :(得分:0)

Flex容器将仅为其直接子项启用flex上下文。因此,您的“进度条”div是遥不可及的。同样,你的紫色背景栏是在flex容器(包装器)之前,所以不要指望它的内容也要居中。您可以查看guide

检查此代码:

<div class="container">
  <div class="row">
    <div class="col-lg-6 col-lg-offset-3 col-md-6 col-md-offset-3 col-s-6 col-s-offset-3" style="background:purple; height:10vh; position:relative; border-radius:10px;">
      <div class="wrapper">
        <div class="left">
          left
        </div>
        <div class="right">
          right
        </div>
      </div>
    </div>
  </div>
</div>

笔基于您的代码here

答案 2 :(得分:0)

尝试添加

  align-items: center;
  justify-content: center;

到你的.wrapper班。

这是一篇关于FlexBox定位的好文章: https://philipwalton.github.io/solved-by-flexbox/demos/vertical-centering/