有一个页面,我们要求如果容器宽度低于视图大小,则将 5 列更改为 2 列,并尝试如下:
.list {
background-color: grey;
display: grid;
grid-gap: 4px;
grid-template-columns: repeat(5, 1fr);
container-type: inline-size;
}
.letter {
display: grid;
grid-auto-flow: row;
justify-items: center;
align-content: center;
color: white;
}
@container (max-width:500px) {
.list {
grid-template-columns: repeat(2, 1fr);
}
.letter {
background-color: green;
}
}
<div class="list">
<div class="letter">A</div>
<div class="letter">B</div>
<div class="letter">C</div>
<div class="letter">D</div>
<div class="letter">E</div>
</div>
但它不起作用;在 Ubuntu 中的 Chrome 和 Firefox 中进行了检查。
我认为你是一个“出局”的容器。
此代码片段引入了一个设置为“容器”的包装器,因此 .list 元素有一个要测试的容器。
您要做的是将@container 更改为@media,其余代码就没问题。