使用自定义属性的全局 CSS 选项

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。从 $200 免费积分 开始!

使用预处理器,如 Sass,构建一个逻辑性的“执行此操作或不执行此操作”设置相当简单

$option: false;

@mixin doThing {
  @if $option {
    do-thing: yep;
  }
}

.el {
  @include doThing;
}

我们可以在原生 CSS 中使用自定义属性做到这一点吗? Mark Otto 表明我们可以。只是稍微有点不同。

html {
  --component-shadow: 0 .5rem 1rem rgba(0,0,0,.1);
}

.component {
  box-shadow: var(--component-shadow);
}

<!-- override the global anywhere more specific! like
     <div class="component remove-shadow">
     or
     <body class="remove-shadow"> -->
.remove-shadow {
  --component-shadow: none;
}

直接链接 →