html - 为什么我的标题垂直居中其子级?
问题描述
我无法理解的默认行为display: flex
当我只添加它时,为什么我的header
垂直居中它的孩子display: flex
。
我没有添加align-items: center;
到header
.
是因为我分配的height: 100px;
吗?
header {
display: flex;
border: 1px solid black;
height: 100px;
}
header div {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
max-width: 1224px;
margin: 0 auto;
}
nav a:not(:last-child) {
margin-right: 55px;
}
<header>
<div>
<a href="#">Link</a>
<nav>
<a href="#">one</a>
<a href="#">two</a>
<a href="#">three</a>
</nav>
<a href="#">Link</a>
</div>
</header>
我知道div
有display: flex
,align-items: center;
但是为什么父 html 元素header
也需要display: flex
它的子元素垂直居中?
解决方案
当您应用display: flex
到父div
级时,其子级“拉伸”以假定容器的完整高度和宽度,因为默认align-items
属性是stretch
.
header
因此, now的孩子的高度为100px
(之前是其内容的高度),并且内容居中。
您的解决方案(应用height: 100%
)有效,因为内容的高度现在是100px
(容器的高度),本质上是模拟 flexbox 的垂直拉伸。
推荐阅读
- flutter - 使用 Flutter 导航到另一条路线时 RouteObserver 的使用和 Widget 处理
- excel - 如果 A 列(或 B;C 等)为空,则在工作表之间复制并粘贴最后一行将覆盖值
- php - /wp-admin/上的302重定向循环
- java - 该语句中有多少个原始操作?
- python - ValueError:未正确调用 DataFrame 构造函数。在 IDE 中运行但不作为批处理文件运行
- python - python中prod和cumprod的区别
- reactjs - 值更改时 React-Select 触发 onChange
- python - 将子进程的 decode() 与字符串进行比较失败
- javascript - 删除 cookie 在 Javascript 中不起作用
- java - 显示以前在百里香中用 if case 隐藏的标签