Я бы пошел с реструктуризацией элемента HTML, чтобы добиться этого, так как это невозможно сделать без добавления пустого элемента clearfix при работе со структурой, которую вы установили.
Вместо этого было бы очень просто удалить вложенные элементы .heading
из элементов .hero
и использовать вместо этого отрицательное значение для свойства top
css.
Вы можете дополнительно обернуть элементы .hero
и .heading
в контейнере, чтобы адаптировать нижнее поле слева в результате отрицательного значения top
.
Код будет выглядеть следующим образом:
HTML
<div>
<div class="hero-container">
<div class="hero"></div>
<div class="heading">
<h1>Greg Potts' Website</h1>
<h4>
Software Developer / Vim-er / Bash-er
</h4>
</div>
</div>
<p>Some content next</p>
</div>
CSS
.hero {
height: 20vh;
width: 100%;
background: #272c33;
}
.heading {
position: relative;
top: calc(-10vh);
width: 50%;
padding: 30px;
margin: auto; /* horizontally center */
background: white;
box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.3);
border-radius: 3px;
}
.hero-container {
margin-bottom: calc(-10vh);
}
.heading h1, h2, h3, h4, h5, h6 { text-align: center; }