不太重要的mixin

时间:2015-01-15 11:51:06

标签: css less

为了生成这样的实用程序类,我进行了混合:

.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;
   }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

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

.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)

即可