Используйте left: calc(-50vw + 50%)
, чтобы разместить его по всей области просмотра ширина.
При использовании margin: 0 auto
он центрируется header
внутри оболочки.Это означает, что ширина пустых пространств с обеих сторон header
равна 100vw минус ширина header
.Это будет 100vw - 100%
от элемента псевдо , и, следовательно, область просмотра начнется с -(100vw - 100%) / 2
.
См. Демонстрацию ниже:
.wrapper {
width: 70%;
max-width: 800px;
margin: 0 auto;
}
header {
background: pink;
position: relative;
z-index: 0;
}
header::before {
background: lightblue;
position: absolute;
z-index: -1;
content: "";
height: 100%;
width: 100vw; /* full page width */
left: calc(-50vw + 50%); /* left positioning */
}
main {
background: wheat;
}
<div class="wrapper">
<header>Header</header>
<main>Main content</main>
</div>