使用flexbox垂直居中

Zac*_*ack 3 html css flexbox

我正在尝试使用flexbox将div放在网页上.我正在设置以下CSS属性.我看到它是水平居中,但不是垂直居中.

.flex-container {
    display: flex;
    align-items: center;
    justify-content: center;
}
Run Code Online (Sandbox Code Playgroud)

这是小提琴:JSFIDDLE

你能解释一下我做错了什么吗?

Ami*_*mit 5

一个<div>没有明确的高度默认为它的高度元素的内容,因为所有的块级元素做.您可能希望将其设置为其父级的100%<body>,但这还不够,因为这也是一个块元素.所以再次,你需要将其设置为100%高度,以匹配它的父亲,<html>.而且,仍然需要100%.

但是一旦完成所有这些,你就会得到令人讨厌的垂直滚动条.这是身体具有默认边距的结果,以及框模型的定义方式.你有几种方法可以解决这个问题,但最简单的方法是将你的边距设置为0.

看到纠正的小提琴.

html, body {
  height: 100%;
  margin: 0px;
}

.flex-container {
	display: flex;
	align-items: center;
    justify-content: center;
    height: 100%;
}

.item {
    background-color: blue;
    height: 50px; 
    width: 50px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="flex-container">
    <div class="item">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)