Я пытаюсь создать адаптивную панель навигации с CSS Grid макетом, который охватывает всю ширину области просмотра, но внутренние элементы должны быть центрированы и выровнены с другими элементами контейнера на странице.
Результат, который я хочу, отображается в приведенном ниже коде, однако я не чувствую, что это элегантное решение, так как я использовал 2 отдельных элемента <div>
, расположенных друг над другом.
Один <div>
предназначен для центрирования элементов, а второй <div>
должен покрывать background-color
по всей ширине области просмотра.
Есть ли лучший способ сделать это, используя CSS Grid layout?
[РЕДАКТИРОВАТЬ] Я ищу способ сделать технику многократного использования на нескольких элементах.
Пожалуйста, разверните фрагмент кода до полной страницы, чтобы макет отображался правильно
.container {
display: grid;
grid-template-columns: 1fr repeat(4, minmax(min-content, 150px)) 1fr;
border: 2px solid black;
height: 100vh;
}
.nav {
grid-area: 1 / 2 / 1 / span 4;
height: 50px;
background-color: grey;
border: 1px solid red;
position: relative;
}
.nav-underlay {
background-color: grey;
grid-area: 1 / 1 / 1 / span 7;
height: 50px;
}
.content {
grid-area: 2 / 2 / 2 / span 4;
height: 200px;
background-color: grey;
border: 1px solid red;
}
<body class="container">
<div class="nav">this box should stay aligned with the content box</div>
<div class="nav-underlay"></div>
<div class="content">Content box</div>
</body>