使用负CSS自定义属性

BHO*_*OLT 12 css css-variables

在预处理器中,如SASS,您可以使用负值,如:

$margin-md: 10px;

.class {
  margin-bottom: -$margin-md;
}
Run Code Online (Sandbox Code Playgroud)

如何使用自定义属性执行此操作?

// This doesn't work
.class {
  margin-bottom: -var(--margin-md);
}
Run Code Online (Sandbox Code Playgroud)

BHO*_*OLT 29

由于此张贴,2018年3月,使用负的自定义属性的唯一途径是通过乘以-1计算功能.

// Vanilla CSS
.class {
  margin-bottom: calc(var(--margin-md) * -1);
}
Run Code Online (Sandbox Code Playgroud)

如果您正在使用具有自定义属性的预处理器,则需要在calc函数中转义自定义属性.

// SASS
.class {
  margin-bottom: calc(#{var(--margin-md)} * -1);
}
Run Code Online (Sandbox Code Playgroud)

  • 这不是唯一的方法...您也可以从 0px 中减去它,即 margin-bottom: calc( 0px - var(--myvalue) ); 虽然它本身基本上是相同的,但由于像 vh 和 vw 这样的单位不允许与其他单位相乘或除法,因此在某些罕见的情况下,相同的乘法的存在可能会导致问题,尽管我只是猜测,但为什么要抓住这个机会,或者万一有机会的话还有其他选择呢? (8认同)