【发布时间】:2020-08-17 18:46:51
【问题描述】:
我正在努力理解grid-template-areas。
我有这个 HTML
<div class="wrapper">
<div class="d">D</div>
<div class="b">B</div>
<div class="c">C</div>
<div class="a">A</div>
</div>
还有这个 CSS
.wrapper {
grid-template-areas: "areaA areaB areaC areaD"
}
.A { grid-area: areaA; }
.B { grid-area: areaB; }
.C { grid-area: areaC; }
.D { grid-area: areaD; }
我得到(预期的)以下结果
A B C D
现在如果我添加一个媒体查询,并想隐藏 B、C 和 D 列
@media (min-width: 500px) {
.wrapper {
grid-template-areas: "areaA";
}
.B {
display: none;
}
.C {
display: none;
}
.D {
display: none;
}
}
这也有效:
A
现在,我随后删除了display:none 条目,希望因为grid-template-areas 中没有提及它们不会显示的元素。我错了;)
是否可以仅使用 css-grid 指定未指定的元素默认隐藏?我似乎找不到任何提到这一点的东西
【问题讨论】:
-
否...如果一个元素没有分配一个显式网格区域,它出现在之后由确定的最后一个区域隐式网格
-
不幸的是,没有这样的方法。你仍然需要使用'display:none;'或 'visibility: hidden' 隐藏元素。