Я создаю макет сайта с использованием CSS-сетки, и я почти получил его именно так, как хотел бы, но у меня есть одна проблема:
Мой рабочий стол выглядит так, как я хочу, но когда он сворачивается до представления мобильного размера (все элементы в отдельных строках), мои leftPad
и rightPad
деления вызывают double grid-gap
как показано ниже:
![double grid gap](https://i.stack.imgur.com/NopHe.png)
Код можно посмотреть здесь: https://codepen.io/nickmask/pen/BbxNoE
.container {
display: grid;
grid-template-areas:
"nav nav nav nav nav"
"header header header header header"
"leftPad leftSidebar content rightSidebar rightPad"
"footer footer footer footer footer";
grid-template-columns: auto 200px minmax(auto, 600px) 200px auto;
grid-template-rows: auto auto 1fr auto;
grid-gap: 10px;
height: 100vh;
}
body {
margin: 0;
}
@media (max-width: 768px) {
.container {
grid-template-areas:
"nav"
"header"
"leftPad"
"leftSidebar"
"content"
"rightSidebar"
"rightPad"
"footer";
grid-template-columns: 1fr;
grid-template-rows:
auto /* Nav */
auto /* Header */
auto /* Left Pad */
minmax(75px, auto) /* Left Sidebar */
1fr /* Content */
minmax(75px, auto) /* Right Sidebar */
auto /* Right Pad */
auto; /* Footer */
}
nav,
aside {
margin: 0;
}
}
header {
grid-area: header;
background-color: aqua;
}
nav {
grid-area: nav;
background-color: lightblue;
}
main {
grid-area: content;
}
.leftSidebar {
background-color: aliceblue;
grid-area: leftSidebar;
}
.rightSidebar {
background-color: aliceblue;
grid-area: rightSidebar;
}
footer {
grid-area: footer;
height: 100px;
background-color: lightcoral;
}
<div class="container">
<nav>
<!-- Navigation -->
Nav
</nav>
<header>
Header
</header>
<div class="leftPad"></div>
<aside class="leftSidebar">
<!-- Sidebar / Ads -->
Side bar
</aside>
<main>
<!-- Main content -->
Main content
</main>
<aside class="rightSidebar">
<!-- Sidebar / Ads -->
Side bar
</aside>
<div class="rightPad"></div>
<footer>
Footer
<!-- Footer content -->
</footer>
</div>
>
Есть ли какие-то обходные пути или предложения о том, как я мог бы построить этот макет по-другому? Ура!