不太重要的mixin

Less important mixin

我进行了混合以生成一些实用程序 class :

.margin(@name, @size){
  .@{name} {margin: (@size)px;}
  @media (max-width: 767px) {
    .xs-@{name} {margin: (@size)px;}
  }
}

它工作正常,但是当我调用 .margin(m-n, 0) !important;

生成的css是:

.m-n {
  margin: 0 !important;
}
@media (max-width: 767px) {
  .xs-m-n {
    margin: 0;
   }
}

但我想要:

.m-n {
  margin: 0 !important;
}
@media (max-width: 767px) {
  .xs-m-n {
    margin: 0 !important;
   }
}

有什么想法吗?

这是一个使用补充参数的解决方案

.margin(@name, @size, @important: false){
    .@{name} when (@important = false){
        margin: (@size)px; 
    }
    .@{name}   when (@important = true) {
        margin: (@size)px !important; 
    }

    @media (max-width: 767px) {
        .xs-@{name} when (@important = false) {
            margin: (@size)px;
        }
        .xs-@{name}  when (@important = true) {
            margin: (@size)px !important;
        }
    }
}

然后你可以直接调用.margin(m-n, 0).margin(m-n, 0, true)