Допустим, есть элемент div с минимальной высотой 500 пикселей и вложенный элемент div с минимальной высотой 200 пикселей. Если я поставлю верхнее поле для вложенного div равным 150px, оно будет центрировано по вертикали. Итак, свойство margin работает. Но если я задаю то же самое, что и margin-top или margin как auto, вложенный div центрируется не по вертикали, а как margin: auto; центры по горизонтали. Почему?
.container {
min-height: 500px;
border: 0.3em solid black;
}
.nested-div {
min-height: 200px;
width: 200px;
border: 0.3em solid red;
margin: auto;
}<html>
<head>
<link rel = "stylesheet" type = "text/css" href = "styles.css" />
</head>
<body>
<div class = "container">
<div class = "nested-div">
</div>
</div>
</body>
</html>





Это не работает, потому что margin-top:auto и margin-bottom:autoзначения будут вычисляться как нуль.
Вы пытались использовать flex для центрирования div?
.container {
min-height: 500px;
display: flex;
justify-content: center;
align-items: center;
border: 0.3em solid black;
}
.nested-div {
min-height: 200px;
width: 200px;
border: 0.3em solid red;
}<html>
<head>
<link rel = "stylesheet" type = "text/css" href = "styles.css" />
</head>
<body>
<div class = "container">
<div class = "nested-div">
</div>
</div>
</body>
</html>