gpt4 book ai didi

css - 如何隐藏网格模板区域中未指定的元素?

转载 作者:技术小花猫 更新时间:2023-10-29 11:03:25 25 4
gpt4 key购买 nike

我正在尝试理解 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 指定未指定的元素默认隐藏?我似乎找不到任何提到这个的东西

最佳答案

grid-template-areas属性不能隐藏网格项。它旨在创建网格区域。

但是您的媒体查询仍然可以非常简单。

这就是你所需要的:

@media (max-width: 500px) {

section:not(.a) { display: none; }

}

jsFiddle demo

article {
display: grid;
grid-template-areas: "areaA areaB areaC areaD";
}

@media (max-width: 500px) {
section:not(.a) { display: none; }
}

.a { grid-area: areaA; }
.b { grid-area: areaB; }
.c { grid-area: areaC; }
.d { grid-area: areaD; }

/* non-essential demo styles */

section {
height: 50px;
width: 75px;
background-color: lightgreen;
border: 1px solid #ccc;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.2em;
}
<article>
<section class="d">D</section>
<section class="b">B</section>
<section class="c">C</section>
<section class="a">A</section>
</article>

关于css - 如何隐藏网格模板区域中未指定的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48660366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com