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

基础CSS遵循DRY原则 如何避免重复书写display: grid属性

解决方案
  • 方案1:使用通用工具类复用(最推荐)
    你可以单独定义一个仅包含display: grid的原子类,所有需要grid布局的元素直接在HTML中加上该类即可,无需在每个选择器中重复写属性:

    /* 提前定义工具类 */
    .grid {
      display: grid;
    }
    

    之后给#header、#nav-bar对应的HTML标签加上class="grid",原有CSS中各个选择器里的display: grid就可以全部删掉,只保留grid模板、间隙、对齐等独有配置即可。
    这种方式扩展性最高,后续新增需要grid布局的元素,直接加类名就行,不需要修改CSS代码。

  • 方案2:选择器分组声明
    如果你不想修改HTML代码,也可以把所有需要设置grid布局的选择器放在同一条规则里统一声明:

    /* 统一给需要的元素设置grid布局 */
    #header, #nav-bar {
      display: grid;
    }
    

    后续每个选择器单独写自己的grid-template-columns等特殊配置即可,媒体查询里也可以用同样的方式分组,避免重复写相同属性。

  • 额外说明:你之前尝试的两种方式本身就不符合CSS规范:

    1. 通用选择器*会匹配页面所有元素,包括<p>、<span>、<a>这类原本不需要grid布局的行内/文本元素,强制设置为grid必然会破坏原有页面样式
    2. display属性不属于可继承属性,父元素设置后子元素不会自动继承,所以给body加grid是不会传递给子元素的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:42:03