css - 为什么 Flex 容器不关心它的父 block 级元素?

标签 css flexbox

<分区>

我想将 flex 容器的内容定位在横轴的中心。据我所知,“align-items”会做到这一点,但是要使“align-items”起作用,我们需要明确指定高度。我说得对吗?

好吧,我明确指定了高度,但是在包含 flex 容器的“header” block 级元素上。不过,flex 容器似乎并不关心 block 容器。为什么会这样? flex 容器是否从正常流程中移除?

:root {
  box-sizing: border-box;
}

*, *::before, *::after {
  box-sizing: inherit;
}

.header {
  background: orchid;
  height: 100px;
}

.flex-container-1 {
  display: flex;
  align-items: center; /* this doesn't seem to work */
                       /* unless I specify the height on the
                          flex container itself */
}
<header class="header">
    <div class="flex-container-1">
      Flex Container 1
    </div>
</header>

最佳答案

你应该给 height:100%;.flex-container-1

:root {
  box-sizing: border-box;
}

*, *::before, *::after {
  box-sizing: inherit;
}

.header {
  background: orchid;
  height: 100px;
}

.flex-container-1 {
  display: flex;
  align-items: center;
  height:100%;
}
<header class="header">
    <div class="flex-container-1">
      Flex Container 1
    </div>
</header>

关于css - 为什么 Flex 容器不关心它的父 block 级元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54865810/

上一篇:html - 如何在页脚中将社交媒体图标居中?

下一篇:javascript - 为什么在这个简单的 jsfiddle 演示中不触发点击事件?

相关文章:

css - 更改 dijit 的主题或样式

css - 在 768px 断点上,先移动右列,然后移动下方的左列

html - 不同列中第一个 div 的高度相同(bootstrap 4)

c# - 未呈现代码隐藏 div 样式更改

css - 需要在 WordPress 中排队才能使用 jQuery-ui ".accordion"函数?

css - 对齐内容不工作 Internet Explorer 11

html - 沿着带有居中文本的父级拉伸(stretch)显示 flex 或表格内部 div

html - CSS-ReactJS 元素可见时的动画

html - 为什么 flex 元素不缩小过去的内容大小?

css - 使用 CSS3 更改文本框的边框长度?