html - 使用 flexbox 垂直居中元素 - 对齐元素 : center doesn't work?

标签 html css flexbox

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

现在的问题是 align-items: center 没有使进度条垂直居中。我也尝试对 child 使用 align-content: center,但没有效果。

如果你没有打开链接,这是代码

.wrapper {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  height: 5em;
  background: #ccc;
}
.wrapper > .left
{
  background: #fcc;
}
.wrapper > .right
{
  background: #ccf;
  flex: 1;
}

标记:

<div class="wrapper">
  <div class="left">Left</div>
  <div class="right">Right</div>
</div>

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

它是这样的:

This is how it looks

最佳答案

我想您可以执行以下操作以使其正确:

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

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

    提供 100% 的高度
  3. 我还删除了 wrapper 容器的 height: 10vh 来完成这一切。

参见 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>

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

关于html - 使用 flexbox 垂直居中元素 - 对齐元素 : center doesn't work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40000979/

相关文章:

angular - 图像未在 flex 行中对齐

html - 如何在 flex 布局中换行?

javascript - 使用 jquery 或简单的 js 将元素拖动到特定位置

javascript - 使用特定 id 删除 ng-repeat 中的元素

css - CSS :first-child:before in Chrome 的奇怪行为

javascript - 如何为 pjax-standalone 添加淡入/淡出效果?

ios - 显示 : flex; doesn't work on iPad (both Chrome and Safari)

html - XPath//*[text()]没有选择我想要的文本

javascript - Vue.js - 双花括号( mustache )语法不起作用/渲染到页面

javascript - 网页重置并停止应用 CSS