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

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,不起作用?)

image.png

阅读 2k
2 个回答

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

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

没有看到你.body的html代码,你可能想写的是body

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题