我看了一些相关问题,但它们并不能完全解决我的问题。
假设我有一个网站,我希望在桌面上显示如下:
这很容易。grid-template-columns: repeat(3, 33%)
(基本上就是这样)
然而,在移动设备上,我希望呈现以下内容:
问题出现在切换到单列之前:
我尝试使用clamp()
,minmax()
和各种方法,但没有任何一种方法能像我想要的那样工作。是的,我完全可以使用媒体查询,但我希望使用现代CSS(如clamp、grid、minmax等)创建一个真正流动的网格/弹性布局,以便基本布局更改不需要媒体查询。
我知道这行不通,但作为一个起点,按照要求,这是我100次尝试中的一个简单版本 :) 在这个版本中,我尝试使用clamp从repeat(3)切换到repeat(1)。
.wrapper {
display: grid;
gap: 15px;
grid-template-columns: repeat(clamp(1, calc(100% - 500px), 3), 33%);
}
.one {
background: red;
}
.two {
background: green;
}
.three {
background: blue;
}
<div class="wrapper">
<div class="item one"><h3>Example A</h3></div>
<div class="item two"><h3>Example Two</h3></div>
<div class="item three"><h3>Third Example</h3></div>
</div>