body上设置flex,无法让item上下左右居中?

作者站长头像
站长
· 阅读数 10

html结构

<div class="outer">
<div class="inner">内容</div>
</div>

.outer通过flex定位后,可以让.inner实现上下左右居中。

.outer {
display: flex;
align-items: center;
justify-content: center;
width: 500px; 
height: 300px; 
border: 2px solid red;
}

.inner {
width: 100px;
height: 100px;
text-align:center;
border: 1px solid black;
}

.inner可以在.outer中上下左右居中,可以得出结论:flex可以让它的item项目(或者说子元素)居中,现在我对body设置flex,.outer是body的item项目吧。

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

为何div.outer没有上下作用居中?(我知道,可以通过加设一个div.wrapper,通过margin让它们一起上下左右居中,这里的问题是为何body设了flex,不起作用?)

body上设置flex,无法让item上下左右居中?

回复
1个回答
avatar
test
2024-07-12

首先,如果你提供的代码无误的话,那么你的 .body 是无效的,这是你误打了。

.body 纠正为 body 后,就完成了 div.outer 水平居中,但没有垂直居中,因为 <body> 没有自己的高度,都是由 div.outer 撑起的。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容