Привет :)
Использую такую некостлявую конструкцию для центрирования элементов:
.wrapper{
text-align: center;
width: 100%;
height: 100vh;
}
.center{
display: inline-block;
width: 300px;
height: 200px;
border: 1px solid #000;
margin-top: calc(50vh - 100px); /* 100px = 50% * this.height */
}
<html>
<body>
<div class="wrapper">
<div class="center">
centered block
</div>
</div>
</body>
</html>
JSBin >
Но если высота неизвестна, как поставить правильный отступ?
Мне кажется есть возможность применять height элемента в CSS.
Если я ошибаюсь, другие конструкции не предлагайте, просто уведомите.
По моей памяти должно быть приблизительно вот так:
.center{
/* ... */
margin-top: calc(50vh - calc(attr(height) / 2));
}