【发布时间】:2021-11-02 05:27:45
【问题描述】:
:root {
--min-screen-height:100px;
}
.App {
display: grid;
grid-template-columns: 0.7fr 0.9fr 1.5fr 0.9fr;
grid-template-rows: 2.75rem 3fr;
grid-template-areas:
'nav nav nav nav'
'sidebar leftmenu content rightmenu';
gap: 0.75rem 0.4rem;
}
.navigation {
grid-area: nav;
background-color: yellow;
}
.sidebar {
min-height: var(--min-screen-height);
grid-area: sidebar;
background-color: aliceblue;
}
.leftmenu {
grid-area: leftmenu;
background-color: skyblue;
}
.content {
min-height: var(--min-screen-height);
grid-area: content;
background-color: blanchedalmond;
padding: 0.5em 0.75em 0.5em 0.75em;
}
.rightmenu {
grid-area: rightmenu;
background-color: coral;
}
@media screen and (max-width: 768px) {
.App {
grid-template-columns: 1fr;
grid-template-areas:
'nav'
'content';
}
}
<div class="App">
<div class="navigation">Nav</div>
<div class="sidebar">Side bar</div>
<div class="leftmenu">Left Menu</div>
<main class="content">Main</main>
<div class="rightmenu">Right Menu</div>
</div>
响应直到768px 我只显示nav 和container。但仍然在768 我可以看到rightmenu。
这里有什么问题?或者如何解决这个问题?请通过调整大小来查看整页。
【问题讨论】:
-
这不仅是正确的,而且所有其他人都在那个地方分组。尝试添加
.rightmenu { display: none; },你会看到左边的aears。 -
@aerial301,但是其他网格区域怎么会消失呢?要知道,当我不提供
grid-area时,元素是如何出现的? -
它们并没有消失,它们只是彼此重叠。将正确元素的不透明度设置为 0.5 之类的值,您将看到它们。显然
grid-template-areas没有隐藏任何指定的元素。