You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS Grid布局如何设置平板端最小网格列数?

实现方案

这个需求完全可以通过CSS原生的max()函数实现,不需要额外JS逻辑,修改后代码如下:

.some-grid {
  --columns: 1;
  display: grid;
  grid-template-columns: repeat(var(--columns), 1fr);
}

@media (min-width: 751px) {
  .some-grid {
    /* 用max()做最小值兜底,保证列数不会低于2 */
    --columns: max(2, calc(var(--columns-large) - 1));
  }
}

@media (min-width: 991px) {
  .some-grid {
    /* 这里可以设置2-5之间的任意值,都能满足需求 */
    --columns-large: 2;
  }
}

逻辑说明

  • max()函数会返回传入多个参数中的最大值,刚好适配最小列数限制的要求
  • 当桌面端--columns-large设为2时:calc(2 - 1)结果为1,max(2, 1)返回2,平板端列数为2,避免出现1列的问题
  • 当桌面端--columns-large设为3-5时:calc(var(--columns-large) - 1)结果为2-4,都大于等于2,会正常取减1后的值,符合「平板端列数比桌面端少1」的要求
  • 兼容性:max()函数在所有现代浏览器(Chrome/Edge 79+、Firefox 75+、Safari 11.1+)都支持,完全满足常规业务场景需求

内容的提问来源于stack exchange,提问作者mousesports

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:36:04