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

通过媒体查询调整CSS Grid列数失效问题排查

响应式CSS Grid列数未更新的问题解决

核心原因:CSS变量声明缺失分号

你在媒体查询中的--mid-col-size: 1fr末尾漏掉了分号,这会导致后续所有CSS变量声明失效,浏览器依然沿用初始的--mid-col-amount: 12。初始布局总列数为:1(edge-spacers)+1(edge-col)+12(mid)+1(edge-col)+1(edge-spacers)=16,所以断点处列数没有变化。

额外优化:间隙属性未关联变量

你定义了--col-gap变量,但grid-column-gap直接写死为20px,媒体查询中的间隙修改不会生效,建议同步改为使用变量。

修正后的完整代码

#app {
  --mid-col-size: 60px;
  --mid-col-amount: 12;
  --edge-col: 150px;
  --col-gap: 20px;
  --edge-spacers: 1fr;
  display: grid;
  grid-template-rows: $header-height 1fr $footer-height;
  grid-template-columns: 
    var(--edge-spacers) 
    var(--edge-col) 
    repeat(var(--mid-col-amount), var(--mid-col-size))
    var(--edge-col) 
    var(--edge-spacers);
  grid-column-gap: var(--col-gap); // 改为使用变量
  grid-row-gap: 0px;
}

@media only screen and (max-width: $desktop) {
  #app {
    --mid-col-size: 1fr; // 补上缺失的分号
    --mid-col-amount: 10;
    --edge-col: 120px;
    --col-gap: 10px;
    --edge-spacers: 0px;
  }
}

修正后,断点处总列数会变为0(edge-spacers)+1(edge-col)+10(mid)+1(edge-col)+0(edge-spacers)=12,若你需要14列,可将媒体查询中的--mid-col-amount调整为12即可。

内容的提问来源于stack exchange,提问作者DanB-Web

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 03:16:01